Bläddra i källkod

Merge branch '3.6.x' into merge-3-6-x

Adam Cozzette 7 år sedan
förälder
incheckning
94d55e5292
38 ändrade filer med 126 tillägg och 80 borttagningar
  1. 12 0
      CHANGES.txt
  2. 1 1
      Protobuf.podspec
  3. 1 1
      configure.ac
  4. 1 1
      csharp/Google.Protobuf.Tools.nuspec
  5. 1 1
      csharp/src/Google.Protobuf/Google.Protobuf.csproj
  6. 1 1
      java/core/pom.xml
  7. 2 2
      java/pom.xml
  8. 1 1
      java/util/pom.xml
  9. 1 1
      js/package.json
  10. 9 9
      php/ext/google/protobuf/def.c
  11. 1 1
      php/ext/google/protobuf/encode_decode.c
  12. 4 2
      php/ext/google/protobuf/map.c
  13. 9 7
      php/ext/google/protobuf/message.c
  14. 5 4
      php/ext/google/protobuf/protobuf.c
  15. 7 2
      php/ext/google/protobuf/protobuf.h
  16. 3 3
      php/ext/google/protobuf/storage.c
  17. 13 0
      php/tests/generated_class_test.php
  18. 6 5
      protoc-artifacts/README.md
  19. 11 1
      protoc-artifacts/build-protoc.sh
  20. 1 1
      protoc-artifacts/pom.xml
  21. 1 1
      python/google/protobuf/__init__.py
  22. 1 1
      ruby/ext/google/protobuf_c/encode_decode.c
  23. 1 1
      ruby/google-protobuf.gemspec
  24. 1 1
      ruby/tests/encode_decode_test.rb
  25. 3 3
      src/Makefile.am
  26. 2 2
      src/google/protobuf/any.pb.h
  27. 2 2
      src/google/protobuf/api.pb.h
  28. 2 2
      src/google/protobuf/compiler/plugin.pb.h
  29. 2 2
      src/google/protobuf/descriptor.pb.h
  30. 2 2
      src/google/protobuf/duration.pb.h
  31. 2 2
      src/google/protobuf/empty.pb.h
  32. 2 2
      src/google/protobuf/field_mask.pb.h
  33. 2 2
      src/google/protobuf/source_context.pb.h
  34. 2 2
      src/google/protobuf/struct.pb.h
  35. 5 5
      src/google/protobuf/stubs/common.h
  36. 2 2
      src/google/protobuf/timestamp.pb.h
  37. 2 2
      src/google/protobuf/type.pb.h
  38. 2 2
      src/google/protobuf/wrappers.pb.h

+ 12 - 0
CHANGES.txt

@@ -1,3 +1,15 @@
+2018-07-27 version 3.6.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
+
+  C++
+  * Introduced workaround for Windows issue with std::atomic and std::once_flag
+    initialization (#4777, #4773).
+
+  PHP
+  * Added compatibility with PHP 7.3 (#4898).
+
+  Ruby
+  * Fixed Ruby crash involving Any encoding (#4718).
+
 2018-06-01 version 3.6.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
 2018-06-01 version 3.6.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)
 
 
   C++
   C++

+ 1 - 1
Protobuf.podspec

@@ -5,7 +5,7 @@
 # dependent projects use the :git notation to refer to the library.
 # dependent projects use the :git notation to refer to the library.
 Pod::Spec.new do |s|
 Pod::Spec.new do |s|
   s.name     = 'Protobuf'
   s.name     = 'Protobuf'
-  s.version  = '3.6.0'
+  s.version  = '3.6.1'
   s.summary  = 'Protocol Buffers v.3 runtime library for Objective-C.'
   s.summary  = 'Protocol Buffers v.3 runtime library for Objective-C.'
   s.homepage = 'https://github.com/google/protobuf'
   s.homepage = 'https://github.com/google/protobuf'
   s.license  = '3-Clause BSD License'
   s.license  = '3-Clause BSD License'

+ 1 - 1
configure.ac

@@ -17,7 +17,7 @@ AC_PREREQ(2.59)
 # In the SVN trunk, the version should always be the next anticipated release
 # 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
 # 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.)
 # the size of one file name in the dist tarfile over the 99-char limit.)
-AC_INIT([Protocol Buffers],[3.6.0],[protobuf@googlegroups.com],[protobuf])
+AC_INIT([Protocol Buffers],[3.6.1],[protobuf@googlegroups.com],[protobuf])
 
 
 AM_MAINTAINER_MODE([enable])
 AM_MAINTAINER_MODE([enable])
 
 

+ 1 - 1
csharp/Google.Protobuf.Tools.nuspec

@@ -5,7 +5,7 @@
     <title>Google Protocol Buffers tools</title>
     <title>Google Protocol Buffers tools</title>
     <summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
     <summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
     <description>See project site for more info.</description>
     <description>See project site for more info.</description>
-    <version>3.6.0</version>
+    <version>3.6.1</version>
     <authors>Google Inc.</authors>
     <authors>Google Inc.</authors>
     <owners>protobuf-packages</owners>
     <owners>protobuf-packages</owners>
     <licenseUrl>https://github.com/google/protobuf/blob/master/LICENSE</licenseUrl>
     <licenseUrl>https://github.com/google/protobuf/blob/master/LICENSE</licenseUrl>

+ 1 - 1
csharp/src/Google.Protobuf/Google.Protobuf.csproj

@@ -4,7 +4,7 @@
     <Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description>
     <Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description>
     <Copyright>Copyright 2015, Google Inc.</Copyright>
     <Copyright>Copyright 2015, Google Inc.</Copyright>
     <AssemblyTitle>Google Protocol Buffers</AssemblyTitle>
     <AssemblyTitle>Google Protocol Buffers</AssemblyTitle>
-    <VersionPrefix>3.6.0</VersionPrefix>
+    <VersionPrefix>3.6.1</VersionPrefix>
     <Authors>Google Inc.</Authors>
     <Authors>Google Inc.</Authors>
     <TargetFrameworks>netstandard1.0;net45</TargetFrameworks>
     <TargetFrameworks>netstandard1.0;net45</TargetFrameworks>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>
     <GenerateDocumentationFile>true</GenerateDocumentationFile>

+ 1 - 1
java/core/pom.xml

@@ -6,7 +6,7 @@
   <parent>
   <parent>
     <groupId>com.google.protobuf</groupId>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.6.0</version>
+    <version>3.6.1</version>
   </parent>
   </parent>
 
 
   <artifactId>protobuf-java</artifactId>
   <artifactId>protobuf-java</artifactId>

+ 2 - 2
java/pom.xml

@@ -11,7 +11,7 @@
 
 
   <groupId>com.google.protobuf</groupId>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-parent</artifactId>
   <artifactId>protobuf-parent</artifactId>
-  <version>3.6.0</version>
+  <version>3.6.1</version>
   <packaging>pom</packaging>
   <packaging>pom</packaging>
 
 
   <name>Protocol Buffers [Parent]</name>
   <name>Protocol Buffers [Parent]</name>
@@ -92,7 +92,7 @@
       <plugins>
       <plugins>
         <plugin>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>3.6.0</version>
+          <version>3.6.1</version>
           <configuration>
           <configuration>
             <source>1.7</source>
             <source>1.7</source>
             <target>1.7</target>
             <target>1.7</target>

+ 1 - 1
java/util/pom.xml

@@ -6,7 +6,7 @@
   <parent>
   <parent>
     <groupId>com.google.protobuf</groupId>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.6.0</version>
+    <version>3.6.1</version>
   </parent>
   </parent>
 
 
   <artifactId>protobuf-java-util</artifactId>
   <artifactId>protobuf-java-util</artifactId>

+ 1 - 1
js/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "google-protobuf",
   "name": "google-protobuf",
-  "version": "3.6.0",
+  "version": "3.6.1",
   "description": "Protocol Buffers for JavaScript",
   "description": "Protocol Buffers for JavaScript",
   "main": "google-protobuf.js",
   "main": "google-protobuf.js",
   "files": [
   "files": [

+ 9 - 9
php/ext/google/protobuf/def.c

@@ -253,7 +253,7 @@ PHP_METHOD(Descriptor, getField) {
 #else
 #else
     field_hashtable_value =
     field_hashtable_value =
         field_descriptor_type->create_object(field_descriptor_type TSRMLS_CC);
         field_descriptor_type->create_object(field_descriptor_type TSRMLS_CC);
-    --GC_REFCOUNT(field_hashtable_value);
+    GC_DELREF(field_hashtable_value);
 #endif
 #endif
     FieldDescriptor *field_php =
     FieldDescriptor *field_php =
         UNBOX_HASHTABLE_VALUE(FieldDescriptor, field_hashtable_value);
         UNBOX_HASHTABLE_VALUE(FieldDescriptor, field_hashtable_value);
@@ -264,7 +264,7 @@ PHP_METHOD(Descriptor, getField) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(field_hashtable_value, 1, 0);
   RETURN_ZVAL(field_hashtable_value, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(field_hashtable_value);
+  GC_ADDREF(field_hashtable_value);
   RETURN_OBJ(field_hashtable_value);
   RETURN_OBJ(field_hashtable_value);
 #endif
 #endif
 }
 }
@@ -492,7 +492,7 @@ PHP_METHOD(FieldDescriptor, getEnumType) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(desc, 1, 0);
   RETURN_ZVAL(desc, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(desc);
+  GC_ADDREF(desc);
   RETURN_OBJ(desc);
   RETURN_OBJ(desc);
 #endif
 #endif
 }
 }
@@ -512,7 +512,7 @@ PHP_METHOD(FieldDescriptor, getMessageType) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(desc, 1, 0);
   RETURN_ZVAL(desc, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(desc);
+  GC_ADDREF(desc);
   RETURN_OBJ(desc);
   RETURN_OBJ(desc);
 #endif
 #endif
 }
 }
@@ -585,7 +585,7 @@ PHP_METHOD(Oneof, getField) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(field_hashtable_value, 1, 0);
   RETURN_ZVAL(field_hashtable_value, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(field_hashtable_value);
+  GC_ADDREF(field_hashtable_value);
   RETURN_OBJ(field_hashtable_value);
   RETURN_OBJ(field_hashtable_value);
 #endif
 #endif
 }
 }
@@ -703,7 +703,7 @@ PHP_METHOD(DescriptorPool, getGeneratedPool) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(generated_pool_php, 1, 0);
   RETURN_ZVAL(generated_pool_php, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(generated_pool_php);
+  GC_ADDREF(generated_pool_php);
   RETURN_OBJ(generated_pool_php);
   RETURN_OBJ(generated_pool_php);
 #endif
 #endif
 }
 }
@@ -713,7 +713,7 @@ PHP_METHOD(InternalDescriptorPool, getGeneratedPool) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(internal_generated_pool_php, 1, 0);
   RETURN_ZVAL(internal_generated_pool_php, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(internal_generated_pool_php);
+  GC_ADDREF(internal_generated_pool_php);
   RETURN_OBJ(internal_generated_pool_php);
   RETURN_OBJ(internal_generated_pool_php);
 #endif
 #endif
 }
 }
@@ -1033,7 +1033,7 @@ PHP_METHOD(DescriptorPool, getDescriptorByClassName) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(desc, 1, 0);
   RETURN_ZVAL(desc, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(desc);
+  GC_ADDREF(desc);
   RETURN_OBJ(desc);
   RETURN_OBJ(desc);
 #endif
 #endif
 }
 }
@@ -1070,7 +1070,7 @@ PHP_METHOD(DescriptorPool, getEnumDescriptorByClassName) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   RETURN_ZVAL(desc, 1, 0);
   RETURN_ZVAL(desc, 1, 0);
 #else
 #else
-  ++GC_REFCOUNT(desc);
+  GC_ADDREF(desc);
   RETURN_OBJ(desc);
   RETURN_OBJ(desc);
 #endif
 #endif
 }
 }

+ 1 - 1
php/ext/google/protobuf/encode_decode.c

@@ -577,7 +577,7 @@ static void map_slot_value(upb_fieldtype_t type, const void* from,
       break;
       break;
     case UPB_TYPE_MESSAGE:
     case UPB_TYPE_MESSAGE:
       *(zend_object**)to = Z_OBJ_P(*(zval**)from);
       *(zend_object**)to = Z_OBJ_P(*(zval**)from);
-      ++GC_REFCOUNT(*(zend_object**)to);
+      GC_ADDREF(*(zend_object**)to);
       break;
       break;
 #endif
 #endif
     default:
     default:

+ 4 - 2
php/ext/google/protobuf/map.c

@@ -192,7 +192,8 @@ static inline void php_proto_map_string_release(void *value) {
 }
 }
 static inline void php_proto_map_object_release(void *value) {
 static inline void php_proto_map_object_release(void *value) {
   zend_object* object = *(zend_object**)value;
   zend_object* object = *(zend_object**)value;
-  if(--GC_REFCOUNT(object) == 0) {
+  GC_DELREF(object);
+  if(GC_REFCOUNT(object) == 0) {
     zend_objects_store_del(object);
     zend_objects_store_del(object);
   }
   }
 }
 }
@@ -302,7 +303,8 @@ static bool map_index_unset(Map *intern, const char* keyval, int length) {
         zval_ptr_dtor(upb_value_memory(&old_value));
         zval_ptr_dtor(upb_value_memory(&old_value));
 #else
 #else
         zend_object* object = *(zend_object**)upb_value_memory(&old_value);
         zend_object* object = *(zend_object**)upb_value_memory(&old_value);
-        if(--GC_REFCOUNT(object) == 0) {
+        GC_DELREF(object);
+        if(GC_REFCOUNT(object) == 0) {
           zend_objects_store_del(object);
           zend_objects_store_del(object);
         }
         }
 #endif
 #endif

+ 9 - 7
php/ext/google/protobuf/message.c

@@ -223,13 +223,7 @@ static zval* message_get_property_ptr_ptr(zval* object, zval* member, int type,
 }
 }
 
 
 static HashTable* message_get_properties(zval* object TSRMLS_DC) {
 static HashTable* message_get_properties(zval* object TSRMLS_DC) {
-  // User cannot get property directly (e.g., $a = $m->a)
-  zend_error(E_USER_ERROR, "Cannot access private properties.");
-#if PHP_MAJOR_VERSION < 7
-  return zend_std_get_properties(object TSRMLS_CC);
-#else
-  return zend_std_get_properties(object);
-#endif
+  return NULL;
 }
 }
 
 
 static HashTable* message_get_gc(zval* object, CACHED_VALUE** table,
 static HashTable* message_get_gc(zval* object, CACHED_VALUE** table,
@@ -871,7 +865,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Cardinality",
   zend_declare_class_constant_long(field_cardinality_type,
   zend_declare_class_constant_long(field_cardinality_type,
                                    "CARDINALITY_REPEATED", 20, 3 TSRMLS_CC);
                                    "CARDINALITY_REPEATED", 20, 3 TSRMLS_CC);
   const char *alias = "Google\\Protobuf\\Field_Cardinality";
   const char *alias = "Google\\Protobuf\\Field_Cardinality";
+#if PHP_VERSION_ID < 70300
   zend_register_class_alias_ex(alias, strlen(alias), field_cardinality_type TSRMLS_CC);
   zend_register_class_alias_ex(alias, strlen(alias), field_cardinality_type TSRMLS_CC);
+#else
+  zend_register_class_alias_ex(alias, strlen(alias), field_cardinality_type, 1);
+#endif
 PHP_PROTO_INIT_ENUMCLASS_END
 PHP_PROTO_INIT_ENUMCLASS_END
 
 
 // -----------------------------------------------------------------------------
 // -----------------------------------------------------------------------------
@@ -926,7 +924,11 @@ PHP_PROTO_INIT_ENUMCLASS_START("Google\\Protobuf\\Field\\Kind",
   zend_declare_class_constant_long(field_kind_type,
   zend_declare_class_constant_long(field_kind_type,
                                    "TYPE_SINT64", 11, 18 TSRMLS_CC);
                                    "TYPE_SINT64", 11, 18 TSRMLS_CC);
   const char *alias = "Google\\Protobuf\\Field_Kind";
   const char *alias = "Google\\Protobuf\\Field_Kind";
+#if PHP_VERSION_ID < 70300
   zend_register_class_alias_ex(alias, strlen(alias), field_kind_type TSRMLS_CC);
   zend_register_class_alias_ex(alias, strlen(alias), field_kind_type TSRMLS_CC);
+#else
+  zend_register_class_alias_ex(alias, strlen(alias), field_kind_type, 1);
+#endif
 PHP_PROTO_INIT_ENUMCLASS_END
 PHP_PROTO_INIT_ENUMCLASS_END
 
 
 // -----------------------------------------------------------------------------
 // -----------------------------------------------------------------------------

+ 5 - 4
php/ext/google/protobuf/protobuf.c

@@ -104,7 +104,7 @@ void add_def_obj(const void* def, PHP_PROTO_HASHTABLE_VALUE value) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   Z_ADDREF_P(value);
   Z_ADDREF_P(value);
 #else
 #else
-  ++GC_REFCOUNT(value);
+  GC_ADDREF(value);
 #endif
 #endif
   add_to_table(upb_def_to_php_obj_map, def, value);
   add_to_table(upb_def_to_php_obj_map, def, value);
 }
 }
@@ -117,7 +117,7 @@ void add_ce_obj(const void* ce, PHP_PROTO_HASHTABLE_VALUE value) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   Z_ADDREF_P(value);
   Z_ADDREF_P(value);
 #else
 #else
-  ++GC_REFCOUNT(value);
+  GC_ADDREF(value);
 #endif
 #endif
   add_to_table(ce_to_php_obj_map, ce, value);
   add_to_table(ce_to_php_obj_map, ce, value);
 }
 }
@@ -134,7 +134,7 @@ void add_proto_obj(const char* proto, PHP_PROTO_HASHTABLE_VALUE value) {
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
   Z_ADDREF_P(value);
   Z_ADDREF_P(value);
 #else
 #else
-  ++GC_REFCOUNT(value);
+  GC_ADDREF(value);
 #endif
 #endif
   add_to_strtable(proto_to_php_obj_map, proto, strlen(proto), value);
   add_to_strtable(proto_to_php_obj_map, proto, strlen(proto), value);
 }
 }
@@ -235,7 +235,8 @@ static PHP_GSHUTDOWN_FUNCTION(protobuf) {
 static void php_proto_hashtable_descriptor_release(zval* value) {
 static void php_proto_hashtable_descriptor_release(zval* value) {
   void* ptr = Z_PTR_P(value);
   void* ptr = Z_PTR_P(value);
   zend_object* object = *(zend_object**)ptr;
   zend_object* object = *(zend_object**)ptr;
-  if(--GC_REFCOUNT(object) == 0) {
+  GC_DELREF(object);
+  if(GC_REFCOUNT(object) == 0) {
     zend_objects_store_del(object);
     zend_objects_store_del(object);
   }
   }
   efree(ptr);
   efree(ptr);

+ 7 - 2
php/ext/google/protobuf/protobuf.h

@@ -37,7 +37,7 @@
 #include "upb.h"
 #include "upb.h"
 
 
 #define PHP_PROTOBUF_EXTNAME "protobuf"
 #define PHP_PROTOBUF_EXTNAME "protobuf"
-#define PHP_PROTOBUF_VERSION "3.6.0"
+#define PHP_PROTOBUF_VERSION "3.6.1"
 
 
 #define MAX_LENGTH_OF_INT64 20
 #define MAX_LENGTH_OF_INT64 20
 #define SIZEOF_INT64 8
 #define SIZEOF_INT64 8
@@ -50,6 +50,11 @@
 // PHP7 Wrappers
 // PHP7 Wrappers
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 
 
+#if PHP_VERSION_ID < 70300
+#define GC_ADDREF(h) ++GC_REFCOUNT(h)
+#define GC_DELREF(h) --GC_REFCOUNT(h)
+#endif
+
 #if PHP_MAJOR_VERSION < 7
 #if PHP_MAJOR_VERSION < 7
 
 
 #define php_proto_zend_literal const zend_literal*
 #define php_proto_zend_literal const zend_literal*
@@ -500,7 +505,7 @@ static inline int php_proto_zend_hash_get_current_data_ex(HashTable* ht,
   PHP_PROTO_HASHTABLE_VALUE WRAPPED_OBJ;                                    \
   PHP_PROTO_HASHTABLE_VALUE WRAPPED_OBJ;                                    \
   WRAPPED_OBJ = OBJ_CLASS_ENTRY->create_object(OBJ_CLASS_ENTRY);            \
   WRAPPED_OBJ = OBJ_CLASS_ENTRY->create_object(OBJ_CLASS_ENTRY);            \
   OBJ = UNBOX_HASHTABLE_VALUE(OBJ_TYPE, WRAPPED_OBJ);                       \
   OBJ = UNBOX_HASHTABLE_VALUE(OBJ_TYPE, WRAPPED_OBJ);                       \
-  --GC_REFCOUNT(WRAPPED_OBJ);
+  GC_DELREF(WRAPPED_OBJ);
 
 
 #define PHP_PROTO_CE_DECLARE zend_class_entry*
 #define PHP_PROTO_CE_DECLARE zend_class_entry*
 #define PHP_PROTO_CE_UNREF(ce) (ce)
 #define PHP_PROTO_CE_UNREF(ce) (ce)

+ 3 - 3
php/ext/google/protobuf/storage.c

@@ -200,7 +200,7 @@ bool native_slot_set_by_array(upb_fieldtype_t type,
       }
       }
 #else
 #else
       DEREF(memory, zval*) = value;
       DEREF(memory, zval*) = value;
-      ++GC_REFCOUNT(Z_OBJ_P(value));
+      GC_ADDREF(Z_OBJ_P(value));
 #endif
 #endif
       break;
       break;
     }
     }
@@ -251,7 +251,7 @@ bool native_slot_set_by_map(upb_fieldtype_t type, const zend_class_entry* klass,
       }
       }
 #else
 #else
       DEREF(memory, zend_object*) = Z_OBJ_P(value);
       DEREF(memory, zend_object*) = Z_OBJ_P(value);
-      ++GC_REFCOUNT(Z_OBJ_P(value));
+      GC_ADDREF(Z_OBJ_P(value));
 #endif
 #endif
       break;
       break;
     }
     }
@@ -428,7 +428,7 @@ void native_slot_get_by_map_value(upb_fieldtype_t type, const void* memory,
         ZVAL_ZVAL(CACHED_PTR_TO_ZVAL_PTR(cache), value, 1, 0);
         ZVAL_ZVAL(CACHED_PTR_TO_ZVAL_PTR(cache), value, 1, 0);
       }
       }
 #else
 #else
-      ++GC_REFCOUNT(*(zend_object**)memory);
+      GC_ADDREF(*(zend_object**)memory);
       ZVAL_OBJ(cache, *(zend_object**)memory);
       ZVAL_OBJ(cache, *(zend_object**)memory);
 #endif
 #endif
       return;
       return;

+ 13 - 0
php/tests/generated_class_test.php

@@ -1342,4 +1342,17 @@ class GeneratedClassTest extends TestBase
 
 
         TestUtil::assertTestMessage($m);
         TestUtil::assertTestMessage($m);
     }
     }
+
+    #########################################################
+    # Test message equals.
+    #########################################################
+
+    public function testMessageEquals()
+    {
+        $m = new TestMessage();
+        TestUtil::setTestMessage($m);
+        $n = new TestMessage();
+        TestUtil::setTestMessage($n);
+        $this->assertEquals($m, $n);
+    }
 }
 }

+ 6 - 5
protoc-artifacts/README.md

@@ -160,11 +160,12 @@ $ ./build-zip.sh 3.6.0
 The above command will create 5 zip files:
 The above command will create 5 zip files:
 
 
 ```
 ```
-dist/protoc-3.0.0-beta-4-win32.zip
-dist/protoc-3.0.0-beta-4-osx-x86_32.zip
-dist/protoc-3.0.0-beta-4-osx-x86_64.zip
-dist/protoc-3.0.0-beta-4-linux-x86_32.zip
-dist/protoc-3.0.0-beta-4-linux-x86_64.zip
+dist/protoc-3.6.0-win32.zip
+dist/protoc-3.6.0-osx-x86_32.zip
+dist/protoc-3.6.0-osx-x86_64.zip
+dist/protoc-3.6.0-linux-x86_32.zip
+dist/protoc-3.6.0-linux-x86_64.zip
+dist/protoc-3.6.0-linux-ppcle_64.zip
 ```
 ```
 
 
 Before running the script, make sure the artifacts are accessible from:
 Before running the script, make sure the artifacts are accessible from:

+ 11 - 1
protoc-artifacts/build-protoc.sh

@@ -86,6 +86,7 @@ checkArch ()
     format="$(objdump -f "$1" | grep -o "file format .*$" | grep -o "[^ ]*$")"
     format="$(objdump -f "$1" | grep -o "file format .*$" | grep -o "[^ ]*$")"
     echo Format=$format
     echo Format=$format
     if [[ "$OS" == linux ]]; then
     if [[ "$OS" == linux ]]; then
+      host_machine="$(uname -m)";
       if [[ "$ARCH" == x86_32 ]]; then
       if [[ "$ARCH" == x86_32 ]]; then
         assertEq $format "elf32-i386" $LINENO
         assertEq $format "elf32-i386" $LINENO
       elif [[ "$ARCH" == x86_64 ]]; then
       elif [[ "$ARCH" == x86_64 ]]; then
@@ -93,7 +94,11 @@ checkArch ()
       elif [[ "$ARCH" == aarch_64 ]]; then
       elif [[ "$ARCH" == aarch_64 ]]; then
         assertEq $format "elf64-little" $LINENO
         assertEq $format "elf64-little" $LINENO
       elif [[ "$ARCH" == ppcle_64 ]]; then
       elif [[ "$ARCH" == ppcle_64 ]]; then
-        assertEq $format "elf64-powerpcle" $LINENO
+	if [[ $host_machine == ppc64le ]];then
+	  assertEq $format "elf64-powerpcle" $LINENO	
+	else	
+          assertEq $format "elf64-little" $LINENO
+	fi
       else
       else
         fail "Unsupported arch: $ARCH"
         fail "Unsupported arch: $ARCH"
       fi
       fi
@@ -132,12 +137,16 @@ checkDependencies ()
     dump_cmd='objdump -x '"$1"' | fgrep "DLL Name"'
     dump_cmd='objdump -x '"$1"' | fgrep "DLL Name"'
     white_list="KERNEL32\.dll\|msvcrt\.dll"
     white_list="KERNEL32\.dll\|msvcrt\.dll"
   elif [[ "$OS" == linux ]]; then
   elif [[ "$OS" == linux ]]; then
+    host_machine="$(uname -m)";
     dump_cmd='ldd '"$1"
     dump_cmd='ldd '"$1"
     if [[ "$ARCH" == x86_32 ]]; then
     if [[ "$ARCH" == x86_32 ]]; then
       white_list="linux-gate\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux\.so\.2"
       white_list="linux-gate\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux\.so\.2"
     elif [[ "$ARCH" == x86_64 ]]; then
     elif [[ "$ARCH" == x86_64 ]]; then
       white_list="linux-vdso\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux-x86-64\.so\.2"
       white_list="linux-vdso\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|ld-linux-x86-64\.so\.2"
     elif [[ "$ARCH" == ppcle_64 ]]; then
     elif [[ "$ARCH" == ppcle_64 ]]; then
+      if [[ $host_machine != ppc64le ]];then      
+        dump_cmd='objdump -p '"$1"' | grep NEEDED'
+      fi
       white_list="linux-vdso64\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|libz\.so\.1\|ld64\.so\.2"
       white_list="linux-vdso64\.so\.1\|libpthread\.so\.0\|libm\.so\.6\|libc\.so\.6\|libz\.so\.1\|ld64\.so\.2"
     elif [[ "$ARCH" == aarch_64 ]]; then
     elif [[ "$ARCH" == aarch_64 ]]; then
       dump_cmd='objdump -p '"$1"' | grep NEEDED'
       dump_cmd='objdump -p '"$1"' | grep NEEDED'
@@ -205,6 +214,7 @@ elif [[ "$(uname)" == Linux* ]]; then
       CONFIGURE_ARGS="$CONFIGURE_ARGS --host=aarch64-linux-gnu"
       CONFIGURE_ARGS="$CONFIGURE_ARGS --host=aarch64-linux-gnu"
     elif [[ "$ARCH" == ppcle_64 ]]; then
     elif [[ "$ARCH" == ppcle_64 ]]; then
       CXXFLAGS="$CXXFLAGS -m64"
       CXXFLAGS="$CXXFLAGS -m64"
+      CONFIGURE_ARGS="$CONFIGURE_ARGS --host=powerpc64le-linux-gnu"
     else
     else
       fail "Unsupported arch: $ARCH"
       fail "Unsupported arch: $ARCH"
     fi
     fi

+ 1 - 1
protoc-artifacts/pom.xml

@@ -10,7 +10,7 @@
   </parent>
   </parent>
   <groupId>com.google.protobuf</groupId>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protoc</artifactId>
   <artifactId>protoc</artifactId>
-  <version>3.6.0</version>
+  <version>3.6.1</version>
   <packaging>pom</packaging>
   <packaging>pom</packaging>
   <name>Protobuf Compiler</name>
   <name>Protobuf Compiler</name>
   <description>
   <description>

+ 1 - 1
python/google/protobuf/__init__.py

@@ -30,7 +30,7 @@
 
 
 # Copyright 2007 Google Inc. All Rights Reserved.
 # Copyright 2007 Google Inc. All Rights Reserved.
 
 
-__version__ = '3.6.0'
+__version__ = '3.6.1'
 
 
 if __name__ != '__main__':
 if __name__ != '__main__':
   try:
   try:

+ 1 - 1
ruby/ext/google/protobuf_c/encode_decode.c

@@ -1109,7 +1109,7 @@ static void putmsg(VALUE msg_rb, const Descriptor* desc,
   TypedData_Get_Struct(msg_rb, MessageHeader, &Message_type, msg);
   TypedData_Get_Struct(msg_rb, MessageHeader, &Message_type, msg);
 
 
   if (desc != msg->descriptor) {
   if (desc != msg->descriptor) {
-    rb_raise(cTypeError,
+    rb_raise(rb_eArgError,
              "The type of given msg is '%s', expect '%s'.",
              "The type of given msg is '%s', expect '%s'.",
              upb_msgdef_fullname(msg->descriptor->msgdef),
              upb_msgdef_fullname(msg->descriptor->msgdef),
              upb_msgdef_fullname(desc->msgdef));
              upb_msgdef_fullname(desc->msgdef));

+ 1 - 1
ruby/google-protobuf.gemspec

@@ -1,6 +1,6 @@
 Gem::Specification.new do |s|
 Gem::Specification.new do |s|
   s.name        = "google-protobuf"
   s.name        = "google-protobuf"
-  s.version     = "3.6.0"
+  s.version     = "3.6.1"
   s.licenses    = ["BSD-3-Clause"]
   s.licenses    = ["BSD-3-Clause"]
   s.summary     = "Protocol Buffers"
   s.summary     = "Protocol Buffers"
   s.description = "Protocol Buffers are Google's data interchange format."
   s.description = "Protocol Buffers are Google's data interchange format."

+ 1 - 1
ruby/tests/encode_decode_test.rb

@@ -86,7 +86,7 @@ class EncodeDecodeTest < Test::Unit::TestCase
   end
   end
 
 
   def test_encode_wrong_msg
   def test_encode_wrong_msg
-    e = assert_raise Google::Protobuf::TypeError do
+    e = assert_raise ::ArgumentError do
       m = A::B::C::TestMessage.new(
       m = A::B::C::TestMessage.new(
           :optional_int32 => 1,
           :optional_int32 => 1,
       )
       )

+ 3 - 3
src/Makefile.am

@@ -164,7 +164,7 @@ nobase_include_HEADERS =                                         \
 lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
 lib_LTLIBRARIES = libprotobuf-lite.la libprotobuf.la libprotoc.la
 
 
 libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS)
 libprotobuf_lite_la_LIBADD = $(PTHREAD_LIBS)
-libprotobuf_lite_la_LDFLAGS = -version-info 16:0:0 -export-dynamic -no-undefined
+libprotobuf_lite_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
 if HAVE_LD_VERSION_SCRIPT
 if HAVE_LD_VERSION_SCRIPT
 libprotobuf_lite_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf-lite.map
 libprotobuf_lite_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf-lite.map
 EXTRA_libprotobuf_lite_la_DEPENDENCIES = libprotobuf-lite.map
 EXTRA_libprotobuf_lite_la_DEPENDENCIES = libprotobuf-lite.map
@@ -210,7 +210,7 @@ libprotobuf_lite_la_SOURCES =                                  \
   google/protobuf/io/zero_copy_stream_impl_lite.cc
   google/protobuf/io/zero_copy_stream_impl_lite.cc
 
 
 libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
 libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
-libprotobuf_la_LDFLAGS = -version-info 16:0:0 -export-dynamic -no-undefined
+libprotobuf_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
 if HAVE_LD_VERSION_SCRIPT
 if HAVE_LD_VERSION_SCRIPT
 libprotobuf_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf.map
 libprotobuf_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotobuf.map
 EXTRA_libprotobuf_la_DEPENDENCIES = libprotobuf.map
 EXTRA_libprotobuf_la_DEPENDENCIES = libprotobuf.map
@@ -301,7 +301,7 @@ libprotobuf_la_SOURCES =                                       \
 nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
 nodist_libprotobuf_la_SOURCES = $(nodist_libprotobuf_lite_la_SOURCES)
 
 
 libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
 libprotoc_la_LIBADD = $(PTHREAD_LIBS) libprotobuf.la
-libprotoc_la_LDFLAGS = -version-info 16:0:0 -export-dynamic -no-undefined
+libprotoc_la_LDFLAGS = -version-info 17:0:0 -export-dynamic -no-undefined
 if HAVE_LD_VERSION_SCRIPT
 if HAVE_LD_VERSION_SCRIPT
 libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map
 libprotoc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libprotoc.map
 EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map
 EXTRA_libprotoc_la_DEPENDENCIES = libprotoc.map

+ 2 - 2
src/google/protobuf/any.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/api.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/compiler/plugin.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/descriptor.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/duration.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/empty.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/field_mask.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/source_context.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/struct.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 5 - 5
src/google/protobuf/stubs/common.h

@@ -101,27 +101,27 @@ namespace internal {
 
 
 // The current version, represented as a single integer to make comparison
 // The current version, represented as a single integer to make comparison
 // easier:  major * 10^6 + minor * 10^3 + micro
 // easier:  major * 10^6 + minor * 10^3 + micro
-#define GOOGLE_PROTOBUF_VERSION 3006000
+#define GOOGLE_PROTOBUF_VERSION 3006001
 
 
 // A suffix string for alpha, beta or rc releases. Empty for stable releases.
 // A suffix string for alpha, beta or rc releases. Empty for stable releases.
 #define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
 #define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
 
 
 // The minimum library version which works with the current version of the
 // The minimum library version which works with the current version of the
 // headers.
 // headers.
-#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 3006000
+#define GOOGLE_PROTOBUF_MIN_LIBRARY_VERSION 3006001
 
 
 // The minimum header version which works with the current version of
 // The minimum header version which works with the current version of
 // the library.  This constant should only be used by protoc's C++ code
 // the library.  This constant should only be used by protoc's C++ code
 // generator.
 // generator.
-static const int kMinHeaderVersionForLibrary = 3006000;
+static const int kMinHeaderVersionForLibrary = 3006001;
 
 
 // The minimum protoc version which works with the current version of the
 // The minimum protoc version which works with the current version of the
 // headers.
 // headers.
-#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 3006000
+#define GOOGLE_PROTOBUF_MIN_PROTOC_VERSION 3006001
 
 
 // The minimum header version which works with the current version of
 // The minimum header version which works with the current version of
 // protoc.  This constant should only be used in VerifyVersion().
 // protoc.  This constant should only be used in VerifyVersion().
-static const int kMinHeaderVersionForProtoc = 3006000;
+static const int kMinHeaderVersionForProtoc = 3006001;
 
 
 // Verifies that the headers and libraries are compatible.  Use the macro
 // Verifies that the headers and libraries are compatible.  Use the macro
 // below to call this.
 // below to call this.

+ 2 - 2
src/google/protobuf/timestamp.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/type.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.

+ 2 - 2
src/google/protobuf/wrappers.pb.h

@@ -8,12 +8,12 @@
 
 
 #include <google/protobuf/stubs/common.h>
 #include <google/protobuf/stubs/common.h>
 
 
-#if GOOGLE_PROTOBUF_VERSION < 3006000
+#if GOOGLE_PROTOBUF_VERSION < 3006001
 #error This file was generated by a newer version of protoc which is
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #error your headers.
 #endif
 #endif
-#if 3006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
 #error regenerate this file with a newer version of protoc.