diff --git a/CHANGES.txt b/CHANGES.txt index 9be4173739b5..c71788c7deb5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,8 @@ +2021-02-05 version 3.15.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) + + Ruby + * Bugfix for Message.[] for repeated or map fields (#8313) + 2021-02-05 version 3.15.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript) Protocol Compiler diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec index e794cb2a49c3..45baa3619763 100644 --- a/Protobuf-C++.podspec +++ b/Protobuf-C++.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'Protobuf-C++' - s.version = '3.15.0' + s.version = '3.15.1' s.summary = 'Protocol Buffers v3 runtime library for C++.' s.homepage = 'https://github.com/google/protobuf' s.license = '3-Clause BSD License' diff --git a/Protobuf.podspec b/Protobuf.podspec index d982b9de8b7a..0d8206f07e72 100644 --- a/Protobuf.podspec +++ b/Protobuf.podspec @@ -5,7 +5,7 @@ # dependent projects use the :git notation to refer to the library. Pod::Spec.new do |s| s.name = 'Protobuf' - s.version = '3.15.0' + s.version = '3.15.1' s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' s.homepage = 'https://github.com/protocolbuffers/protobuf' s.license = '3-Clause BSD License' diff --git a/configure.ac b/configure.ac index fed7095bbd43..f6ae5add9bd5 100644 --- a/configure.ac +++ b/configure.ac @@ -17,7 +17,7 @@ AC_PREREQ(2.59) # In the SVN trunk, the version should always be the next anticipated release # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # the size of one file name in the dist tarfile over the 99-char limit.) -AC_INIT([Protocol Buffers],[3.15.0],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.15.1],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index 0e8b54d9abd1..e1cebacb276c 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.15.0 + 3.15.1 Google Inc. protobuf-packages https://github.com/protocolbuffers/protobuf/blob/master/LICENSE diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj index 9c2c028507c0..cb1c983c222e 100644 --- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj +++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj @@ -4,7 +4,7 @@ C# runtime library for Protocol Buffers - Google's data interchange format. Copyright 2015, Google Inc. Google Protocol Buffers - 3.15.0 + 3.15.1 7.2 Google Inc. diff --git a/java/bom/pom.xml b/java/bom/pom.xml index 7fbd41da5ed5..46a76deec4ef 100644 --- a/java/bom/pom.xml +++ b/java/bom/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-bom - 3.15.0 + 3.15.1 pom Protocol Buffers [BOM] diff --git a/java/core/pom.xml b/java/core/pom.xml index 79b967bb0e05..15590d53ecda 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.0 + 3.15.1 protobuf-java diff --git a/java/lite/pom.xml b/java/lite/pom.xml index fd313daf51bc..61250a6f7924 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.0 + 3.15.1 protobuf-javalite diff --git a/java/pom.xml b/java/pom.xml index 79850b17d39b..c9beebd4d735 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.0 + 3.15.1 pom Protocol Buffers [Parent] diff --git a/java/util/pom.xml b/java/util/pom.xml index 9c089dfb7269..0d6985dd3126 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -4,7 +4,7 @@ com.google.protobuf protobuf-parent - 3.15.0 + 3.15.1 protobuf-java-util diff --git a/js/package.json b/js/package.json index 768b37a4d014..189881f7e805 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "google-protobuf", - "version": "3.15.0", + "version": "3.15.1", "description": "Protocol Buffers for JavaScript", "main": "google-protobuf.js", "files": [ diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index 805c071f752c..31440b9012f7 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -10,11 +10,11 @@ protobuf-opensource@google.com yes - 2021-02-18 - + 2021-02-19 + - 3.15.0 - 3.15.0 + 3.15.1 + 3.15.1 stable @@ -805,5 +805,20 @@ G A release. + + + 3.15.1 + 3.15.1 + + + stable + stable + + 2021-02-19 + + 3-Clause BSD License + + + diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 7e63ca095bcf..de783ee08beb 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -76,7 +76,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_setter, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -#define PHP_PROTOBUF_VERSION "3.15.0" +#define PHP_PROTOBUF_VERSION "3.15.1" // ptr -> PHP object cache. This is a weak map that caches lazily-created // wrapper objects around upb types: diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml index cbe84bb43429..4a5ed9314571 100644 --- a/protoc-artifacts/pom.xml +++ b/protoc-artifacts/pom.xml @@ -8,7 +8,7 @@ com.google.protobuf protoc - 3.15.0 + 3.15.1 pom Protobuf Compiler diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index 6c20545faeff..22a6072ffd23 100644 --- a/python/google/protobuf/__init__.py +++ b/python/google/protobuf/__init__.py @@ -30,4 +30,4 @@ # Copyright 2007 Google Inc. All Rights Reserved. -__version__ = '3.15.0' +__version__ = '3.15.1' diff --git a/ruby/ext/google/protobuf_c/message.c b/ruby/ext/google/protobuf_c/message.c index 22a21c129e6e..259f5e666d68 100644 --- a/ruby/ext/google/protobuf_c/message.c +++ b/ruby/ext/google/protobuf_c/message.c @@ -292,6 +292,35 @@ static void Message_setfield(upb_msg* msg, const upb_fielddef* f, VALUE val, upb_msg_set(msg, f, msgval, arena); } +static VALUE Message_getfield(VALUE _self, const upb_fielddef* f) { + Message* self = ruby_to_Message(_self); + // This is a special-case: upb_msg_mutable() for map & array are logically + // const (they will not change what is serialized) but physically + // non-const, as they do allocate a repeated field or map. The logical + // constness means it's ok to do even if the message is frozen. + upb_msg *msg = (upb_msg*)self->msg; + upb_arena *arena = Arena_get(self->arena); + if (upb_fielddef_ismap(f)) { + upb_map *map = upb_msg_mutable(msg, f, arena).map; + const upb_fielddef *key_f = map_field_key(f); + const upb_fielddef *val_f = map_field_value(f); + upb_fieldtype_t key_type = upb_fielddef_type(key_f); + TypeInfo value_type_info = TypeInfo_get(val_f); + return Map_GetRubyWrapper(map, key_type, value_type_info, self->arena); + } else if (upb_fielddef_isseq(f)) { + upb_array *arr = upb_msg_mutable(msg, f, arena).array; + return RepeatedField_GetRubyWrapper(arr, TypeInfo_get(f), self->arena); + } else if (upb_fielddef_issubmsg(f)) { + if (!upb_msg_has(self->msg, f)) return Qnil; + upb_msg *submsg = upb_msg_mutable(msg, f, arena).msg; + const upb_msgdef *m = upb_fielddef_msgsubdef(f); + return Message_GetRubyWrapper(submsg, m, self->arena); + } else { + upb_msgval msgval = upb_msg_get(self->msg, f); + return Convert_UpbToRuby(msgval, TypeInfo_get(f), self->arena); + } +} + static VALUE Message_field_accessor(VALUE _self, const upb_fielddef* f, int accessor_type, int argc, VALUE* argv) { upb_arena *arena = Arena_get(Message_GetArena(_self)); @@ -350,36 +379,11 @@ static VALUE Message_field_accessor(VALUE _self, const upb_fielddef* f, return INT2NUM(msgval.int32_val); } } - case METHOD_GETTER: { - Message* self = ruby_to_Message(_self); - // This is a special-case: upb_msg_mutable() for map & array are logically - // const (they will not change what is serialized) but physically - // non-const, as they do allocate a repeated field or map. The logical - // constness means it's ok to do even if the message is frozen. - upb_msg *msg = (upb_msg*)self->msg; - if (upb_fielddef_ismap(f)) { - upb_map *map = upb_msg_mutable(msg, f, arena).map; - const upb_fielddef *key_f = map_field_key(f); - const upb_fielddef *val_f = map_field_value(f); - upb_fieldtype_t key_type = upb_fielddef_type(key_f); - TypeInfo value_type_info = TypeInfo_get(val_f); - return Map_GetRubyWrapper(map, key_type, value_type_info, self->arena); - } else if (upb_fielddef_isseq(f)) { - upb_array *arr = upb_msg_mutable(msg, f, arena).array; - return RepeatedField_GetRubyWrapper(arr, TypeInfo_get(f), self->arena); - } else if (upb_fielddef_issubmsg(f)) { - if (!upb_msg_has(self->msg, f)) return Qnil; - upb_msg *submsg = upb_msg_mutable(msg, f, arena).msg; - const upb_msgdef *m = upb_fielddef_msgsubdef(f); - return Message_GetRubyWrapper(submsg, m, self->arena); - } else { - upb_msgval msgval = upb_msg_get(self->msg, f); - return Convert_UpbToRuby(msgval, TypeInfo_get(f), self->arena); - } + case METHOD_GETTER: + return Message_getfield(_self, f); default: rb_raise(rb_eRuntimeError, "Internal error, no such accessor: %d", accessor_type); - } } } @@ -866,7 +870,6 @@ static VALUE Message_freeze(VALUE _self) { static VALUE Message_index(VALUE _self, VALUE field_name) { Message* self = ruby_to_Message(_self); const upb_fielddef* field; - upb_msgval val; Check_Type(field_name, T_STRING); field = upb_msgdef_ntofz(self->msgdef, RSTRING_PTR(field_name)); @@ -875,8 +878,7 @@ static VALUE Message_index(VALUE _self, VALUE field_name) { return Qnil; } - val = upb_msg_get(self->msg, field); - return Convert_UpbToRuby(val, TypeInfo_get(field), self->arena); + return Message_getfield(_self, field); } /* @@ -1285,7 +1287,7 @@ const upb_msg* Message_GetUpbMessage(VALUE value, const upb_msgdef* m, if (!rb_obj_is_kind_of(value, rb_cNumeric)) goto badtype; sec.int64_val = NUM2LL(value); - nsec.int32_val = (NUM2DBL(value) - NUM2LL(value)) * 1000000000; + nsec.int32_val = round((NUM2DBL(value) - NUM2LL(value)) * 1000000000); upb_msg_set(msg, sec_f, sec, arena); upb_msg_set(msg, nsec_f, nsec, arena); return msg; diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 6420dfc0511f..eb6f794de96c 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.15.0" + s.version = "3.15.1" git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag s.licenses = ["BSD-3-Clause"] s.summary = "Protocol Buffers" diff --git a/ruby/tests/basic.rb b/ruby/tests/basic.rb index 098ac41e7e9c..107084e66436 100755 --- a/ruby/tests/basic.rb +++ b/ruby/tests/basic.rb @@ -31,6 +31,33 @@ def proto_module end include CommonTests + def test_issue_8311_crash + Google::Protobuf::DescriptorPool.generated_pool.build do + add_file("inner.proto", :syntax => :proto3) do + add_message "Inner" do + # Removing either of these fixes the segfault. + optional :foo, :string, 1 + optional :bar, :string, 2 + end + end + end + + Google::Protobuf::DescriptorPool.generated_pool.build do + add_file("outer.proto", :syntax => :proto3) do + add_message "Outer" do + repeated :inners, :message, 1, "Inner" + end + end + end + + outer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("Outer").msgclass + + outer_proto = outer.new( + inners: [] + ) + outer_proto['inners'].to_s + end + def test_has_field m = TestSingularFields.new assert !m.has_singular_msg? diff --git a/ruby/tests/common_tests.rb b/ruby/tests/common_tests.rb index 589934b0e92f..1957422fa937 100644 --- a/ruby/tests/common_tests.rb +++ b/ruby/tests/common_tests.rb @@ -1701,6 +1701,12 @@ def test_converts_duration m = proto_module::TimeMessage.new(duration: 1.1) assert_equal Google::Protobuf::Duration.new(seconds: 1, nanos: 100_000_000), m.duration + m = proto_module::TimeMessage.new(duration: 123.321) + assert_equal Google::Protobuf::Duration.new(seconds: 123, nanos: 321_000_000), m.duration + + m = proto_module::TimeMessage.new(duration: -123.321) + assert_equal Google::Protobuf::Duration.new(seconds: -123, nanos: -321_000_000), m.duration + assert_raise(Google::Protobuf::TypeError) { m.duration = '2' } assert_raise(Google::Protobuf::TypeError) { m.duration = proto_module::TimeMessage.new } end diff --git a/src/Makefile.am b/src/Makefile.am index 2f0f92ab98a9..c845814ebf7e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,7 @@ else PTHREAD_DEF = endif -PROTOBUF_VERSION = 26:0:0 +PROTOBUF_VERSION = 26:1:0 if GCC # Turn on all warnings except for sign comparison (we ignore sign comparison diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h index 98d48904397f..88a0163ae66f 100644 --- a/src/google/protobuf/any.pb.h +++ b/src/google/protobuf/any.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h index 863b9da67d10..b0958af0c219 100644 --- a/src/google/protobuf/api.pb.h +++ b/src/google/protobuf/api.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h index e2932deac02a..9f71b12c5147 100644 --- a/src/google/protobuf/compiler/plugin.pb.h +++ b/src/google/protobuf/compiler/plugin.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h index c9d47546c499..e49e9bd2ef29 100644 --- a/src/google/protobuf/descriptor.pb.h +++ b/src/google/protobuf/descriptor.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h index 65c5d264a346..74b5a92611db 100644 --- a/src/google/protobuf/duration.pb.h +++ b/src/google/protobuf/duration.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h index 8de6f1c0f45a..8ac8481baf6d 100644 --- a/src/google/protobuf/empty.pb.h +++ b/src/google/protobuf/empty.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h index af25a03cab03..e743efd6c433 100644 --- a/src/google/protobuf/field_mask.pb.h +++ b/src/google/protobuf/field_mask.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index 3dc0ca7f9728..6b6d34db0201 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -335,7 +335,7 @@ // Shared google3/opensource definitions. ////////////////////////////////////// -#define PROTOBUF_VERSION 3015000 +#define PROTOBUF_VERSION 3015001 #define PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC 3015000 #define PROTOBUF_MIN_PROTOC_VERSION 3015000 #define PROTOBUF_VERSION_SUFFIX "" @@ -562,7 +562,9 @@ // by this flag is supposed to be removed after this experiment. // #define PROTOBUF_MESSAGE_OWNED_ARENA_EXPERIMENT -#if defined(__cpp_constinit) +// Our use of constinit does not yet work with GCC: +// https://github.com/protocolbuffers/protobuf/issues/8310 +#if defined(__cpp_constinit) && !defined(__GNUC__) #define PROTOBUF_CONSTINIT constinit #elif defined(__has_cpp_attribute) #if __has_cpp_attribute(clang::require_constant_initialization) diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h index a5e9db67a980..a6a9757ac6f5 100644 --- a/src/google/protobuf/source_context.pb.h +++ b/src/google/protobuf/source_context.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h index ac33ab601e0a..6f2d53f31e8d 100644 --- a/src/google/protobuf/struct.pb.h +++ b/src/google/protobuf/struct.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index c2edf7c9c5c3..a58a2843ac45 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -82,7 +82,7 @@ namespace internal { // The current version, represented as a single integer to make comparison // easier: major * 10^6 + minor * 10^3 + micro -#define GOOGLE_PROTOBUF_VERSION 3015000 +#define GOOGLE_PROTOBUF_VERSION 3015001 // A suffix string for alpha, beta or rc releases. Empty for stable releases. #define GOOGLE_PROTOBUF_VERSION_SUFFIX "" diff --git a/src/google/protobuf/stubs/mutex.h b/src/google/protobuf/stubs/mutex.h index 23f315f4726a..82b62a66b05e 100644 --- a/src/google/protobuf/stubs/mutex.h +++ b/src/google/protobuf/stubs/mutex.h @@ -126,7 +126,7 @@ class GOOGLE_PROTOBUF_CAPABILITY("mutex") PROTOBUF_EXPORT WrappedMutex { private: #if defined(GOOGLE_PROTOBUF_SUPPORT_WINDOWS_XP) CallOnceInitializedMutex mu_{}; -#elif defined(_MSC_VER) +#elif defined(_WIN32) CallOnceInitializedMutex mu_{}; #else std::mutex mu_{}; diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h index bae459137c5f..e6bf5ee48bdf 100644 --- a/src/google/protobuf/timestamp.pb.h +++ b/src/google/protobuf/timestamp.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h index 7188ed36092e..8d402d8d7fc2 100644 --- a/src/google/protobuf/type.pb.h +++ b/src/google/protobuf/type.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc. diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h index 569bde0f679f..8dbc3cb89450 100644 --- a/src/google/protobuf/wrappers.pb.h +++ b/src/google/protobuf/wrappers.pb.h @@ -13,7 +13,7 @@ #error incompatible with your Protocol Buffer headers. Please update #error your headers. #endif -#if 3015000 < PROTOBUF_MIN_PROTOC_VERSION +#if 3015001 < PROTOBUF_MIN_PROTOC_VERSION #error This file was generated by an older version of protoc which is #error incompatible with your Protocol Buffer headers. Please #error regenerate this file with a newer version of protoc.