From 8352d52dd86e6a243cff0f550b56353b9cef2015 Mon Sep 17 00:00:00 2001 From: Charlene Date: Wed, 21 Sep 2016 20:59:36 -0700 Subject: Update minimum support php version to 5.5 --- php/ext/google/protobuf/package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/php/ext/google/protobuf/package.xml b/php/ext/google/protobuf/package.xml index cfb33acb..b4661832 100644 --- a/php/ext/google/protobuf/package.xml +++ b/php/ext/google/protobuf/package.xml @@ -45,7 +45,7 @@ First alpha release. - 5.6.0 + 5.5.37 1.4.0 -- cgit v1.2.3 From 923314cc8847cfb1fed9c711ec3b211446dbfd4e Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Thu, 22 Sep 2016 15:11:17 -0700 Subject: update files to include php generators --- BUILD | 3 +++ cmake/extract_includes.bat.in | 3 ++- cmake/tests.cmake | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/BUILD b/BUILD index 941ca691..8a5c2037 100644 --- a/BUILD +++ b/BUILD @@ -316,6 +316,7 @@ cc_library( "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc", "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc", "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc", + "src/google/protobuf/compiler/php/php_generator.cc", "src/google/protobuf/compiler/plugin.cc", "src/google/protobuf/compiler/plugin.pb.cc", "src/google/protobuf/compiler/python/python_generator.cc", @@ -390,8 +391,10 @@ RELATIVE_TEST_PROTOS = [ "google/protobuf/util/internal/testdata/field_mask.proto", "google/protobuf/util/internal/testdata/maps.proto", "google/protobuf/util/internal/testdata/oneofs.proto", + "google/protobuf/util/internal/testdata/proto3.proto", "google/protobuf/util/internal/testdata/struct.proto", "google/protobuf/util/internal/testdata/timestamp_duration.proto", + "google/protobuf/util/internal/testdata/wrappers.proto", "google/protobuf/util/json_format_proto3.proto", "google/protobuf/util/message_differencer_unittest.proto", ] diff --git a/cmake/extract_includes.bat.in b/cmake/extract_includes.bat.in index 548a40fd..abd70616 100644 --- a/cmake/extract_includes.bat.in +++ b/cmake/extract_includes.bat.in @@ -8,6 +8,7 @@ mkdir include\google\protobuf\compiler\java mkdir include\google\protobuf\compiler\javanano mkdir include\google\protobuf\compiler\js mkdir include\google\protobuf\compiler\objectivec +mkdir include\google\protobuf\compiler\php mkdir include\google\protobuf\compiler\python mkdir include\google\protobuf\compiler\ruby mkdir include\google\protobuf\io @@ -23,7 +24,6 @@ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\command_line_ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_generator.h include\google\protobuf\compiler\csharp\csharp_generator.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_names.h include\google\protobuf\compiler\csharp\csharp_names.h -copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_options.h include\google\protobuf\compiler\csharp\csharp_options.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_names.h include\google\protobuf\compiler\java\java_names.h @@ -85,6 +85,7 @@ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_intern copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_mips_gcc.h include\google\protobuf\stubs\atomicops_internals_mips_gcc.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_pnacl.h include\google\protobuf\stubs\atomicops_internals_pnacl.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_power.h include\google\protobuf\stubs\atomicops_internals_power.h +copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_ppc_gcc.h include\google\protobuf\stubs\atomicops_internals_ppc_gcc.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_solaris.h include\google\protobuf\stubs\atomicops_internals_solaris.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_tsan.h include\google\protobuf\stubs\atomicops_internals_tsan.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.h include\google\protobuf\stubs\atomicops_internals_x86_gcc.h diff --git a/cmake/tests.cmake b/cmake/tests.cmake index ec0d6030..30214e7d 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -63,8 +63,10 @@ set(tests_protos google/protobuf/util/internal/testdata/field_mask.proto google/protobuf/util/internal/testdata/maps.proto google/protobuf/util/internal/testdata/oneofs.proto + google/protobuf/util/internal/testdata/proto3.proto google/protobuf/util/internal/testdata/struct.proto google/protobuf/util/internal/testdata/timestamp_duration.proto + google/protobuf/util/internal/testdata/wrappers.proto google/protobuf/util/json_format_proto3.proto google/protobuf/util/message_differencer_unittest.proto ) -- cgit v1.2.3 From f184cb60358d89924b057a6cebf0485e9ff665d0 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Fri, 23 Sep 2016 11:17:00 -0700 Subject: Fix default instance destructor --- src/google/protobuf/any.pb.cc | 1 + src/google/protobuf/api.pb.cc | 7 ++- src/google/protobuf/compiler/cpp/cpp_message.cc | 15 +++++++ src/google/protobuf/compiler/plugin.pb.cc | 3 ++ src/google/protobuf/descriptor.pb.cc | 59 +++++++++++++++++++++---- src/google/protobuf/duration.pb.cc | 1 + src/google/protobuf/empty.pb.cc | 1 + src/google/protobuf/field_mask.pb.cc | 1 + src/google/protobuf/generated_message_util.h | 6 +++ src/google/protobuf/source_context.pb.cc | 1 + src/google/protobuf/struct.pb.cc | 3 ++ src/google/protobuf/timestamp.pb.cc | 1 + src/google/protobuf/type.pb.cc | 17 +++++-- src/google/protobuf/wrappers.pb.cc | 9 ++++ 14 files changed, 112 insertions(+), 13 deletions(-) diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc index fa9d18a2..bc56164c 100644 --- a/src/google/protobuf/any.pb.cc +++ b/src/google/protobuf/any.pb.cc @@ -71,6 +71,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fany_2eproto() { + Any::default_instance_.Shutdown(); delete Any_reflection_; } diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc index bd85bbdb..c7ed9fb7 100644 --- a/src/google/protobuf/api.pb.cc +++ b/src/google/protobuf/api.pb.cc @@ -121,8 +121,11 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto() { + Api::default_instance_.Shutdown(); delete Api_reflection_; + Method::default_instance_.Shutdown(); delete Method_reflection_; + Mixin::default_instance_.Shutdown(); delete Mixin_reflection_; } @@ -247,7 +250,9 @@ Api::~Api() { void Api::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete source_context_; + if (this != &default_instance_.get()) { + delete source_context_; + } } void Api::SetCachedSize(int size) const { diff --git a/src/google/protobuf/compiler/cpp/cpp_message.cc b/src/google/protobuf/compiler/cpp/cpp_message.cc index f5648663..f3dd8067 100644 --- a/src/google/protobuf/compiler/cpp/cpp_message.cc +++ b/src/google/protobuf/compiler/cpp/cpp_message.cc @@ -1815,6 +1815,9 @@ GenerateDefaultInstanceInitializer(io::Printer* printer) { void MessageGenerator:: GenerateShutdownCode(io::Printer* printer) { + printer->Print( + "$classname$::default_instance_.Shutdown();\n", + "classname", classname_); if (HasDescriptorMethods(descriptor_->file(), options_)) { if (descriptor_->oneof_decl_count() > 0) { printer->Print( @@ -2151,6 +2154,7 @@ GenerateSharedDestructorCode(io::Printer* printer) { // TODO(kenton): If we make unset messages point at default instances // instead of NULL, then it would make sense to move this code into // MessageFieldGenerator::GenerateDestructorCode(). + bool need_delete_message_field = false; for (int i = 0; i < descriptor_->field_count(); i++) { const FieldDescriptor* field = descriptor_->field(i); @@ -2158,10 +2162,21 @@ GenerateSharedDestructorCode(io::Printer* printer) { field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) { // Skip oneof members if (!field->containing_oneof()) { + if (!need_delete_message_field) { + need_delete_message_field = true; + printer->Print( + "if (this != &default_instance_.get()) {\n"); + printer->Indent(); + } printer->Print("delete $name$_;\n", "name", FieldName(field)); } } } + if (need_delete_message_field) { + printer->Outdent(); + printer->Print( + "}\n"); + } printer->Outdent(); printer->Print( diff --git a/src/google/protobuf/compiler/plugin.pb.cc b/src/google/protobuf/compiler/plugin.pb.cc index 1c19d46a..4fc7c432 100644 --- a/src/google/protobuf/compiler/plugin.pb.cc +++ b/src/google/protobuf/compiler/plugin.pb.cc @@ -114,8 +114,11 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fcompiler_2fplugin_2eproto() { + CodeGeneratorRequest::default_instance_.Shutdown(); delete CodeGeneratorRequest_reflection_; + CodeGeneratorResponse::default_instance_.Shutdown(); delete CodeGeneratorResponse_reflection_; + CodeGeneratorResponse_File::default_instance_.Shutdown(); delete CodeGeneratorResponse_File_reflection_; } diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc index 43556237..acd5491a 100644 --- a/src/google/protobuf/descriptor.pb.cc +++ b/src/google/protobuf/descriptor.pb.cc @@ -622,30 +622,55 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto() { + FileDescriptorSet::default_instance_.Shutdown(); delete FileDescriptorSet_reflection_; + FileDescriptorProto::default_instance_.Shutdown(); delete FileDescriptorProto_reflection_; + DescriptorProto::default_instance_.Shutdown(); delete DescriptorProto_reflection_; + DescriptorProto_ExtensionRange::default_instance_.Shutdown(); delete DescriptorProto_ExtensionRange_reflection_; + DescriptorProto_ReservedRange::default_instance_.Shutdown(); delete DescriptorProto_ReservedRange_reflection_; + FieldDescriptorProto::default_instance_.Shutdown(); delete FieldDescriptorProto_reflection_; + OneofDescriptorProto::default_instance_.Shutdown(); delete OneofDescriptorProto_reflection_; + EnumDescriptorProto::default_instance_.Shutdown(); delete EnumDescriptorProto_reflection_; + EnumValueDescriptorProto::default_instance_.Shutdown(); delete EnumValueDescriptorProto_reflection_; + ServiceDescriptorProto::default_instance_.Shutdown(); delete ServiceDescriptorProto_reflection_; + MethodDescriptorProto::default_instance_.Shutdown(); delete MethodDescriptorProto_reflection_; + FileOptions::default_instance_.Shutdown(); delete FileOptions_reflection_; + MessageOptions::default_instance_.Shutdown(); delete MessageOptions_reflection_; + FieldOptions::default_instance_.Shutdown(); delete FieldOptions_reflection_; + OneofOptions::default_instance_.Shutdown(); delete OneofOptions_reflection_; + EnumOptions::default_instance_.Shutdown(); delete EnumOptions_reflection_; + EnumValueOptions::default_instance_.Shutdown(); delete EnumValueOptions_reflection_; + ServiceOptions::default_instance_.Shutdown(); delete ServiceOptions_reflection_; + MethodOptions::default_instance_.Shutdown(); delete MethodOptions_reflection_; + UninterpretedOption::default_instance_.Shutdown(); delete UninterpretedOption_reflection_; + UninterpretedOption_NamePart::default_instance_.Shutdown(); delete UninterpretedOption_NamePart_reflection_; + SourceCodeInfo::default_instance_.Shutdown(); delete SourceCodeInfo_reflection_; + SourceCodeInfo_Location::default_instance_.Shutdown(); delete SourceCodeInfo_Location_reflection_; + GeneratedCodeInfo::default_instance_.Shutdown(); delete GeneratedCodeInfo_reflection_; + GeneratedCodeInfo_Annotation::default_instance_.Shutdown(); delete GeneratedCodeInfo_Annotation_reflection_; } @@ -1231,8 +1256,10 @@ void FileDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); package_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); syntax_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; - delete source_code_info_; + if (this != &default_instance_.get()) { + delete options_; + delete source_code_info_; + } } void FileDescriptorProto::SetCachedSize(int size) const { @@ -3137,7 +3164,9 @@ DescriptorProto::~DescriptorProto() { void DescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void DescriptorProto::SetCachedSize(int size) const { @@ -4380,7 +4409,9 @@ void FieldDescriptorProto::SharedDtor() { extendee_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); default_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); json_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void FieldDescriptorProto::SetCachedSize(int size) const { @@ -5511,7 +5542,9 @@ OneofDescriptorProto::~OneofDescriptorProto() { void OneofDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void OneofDescriptorProto::SetCachedSize(int size) const { @@ -5932,7 +5965,9 @@ EnumDescriptorProto::~EnumDescriptorProto() { void EnumDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void EnumDescriptorProto::SetCachedSize(int size) const { @@ -6429,7 +6464,9 @@ EnumValueDescriptorProto::~EnumValueDescriptorProto() { void EnumValueDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void EnumValueDescriptorProto::SetCachedSize(int size) const { @@ -6911,7 +6948,9 @@ ServiceDescriptorProto::~ServiceDescriptorProto() { void ServiceDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void ServiceDescriptorProto::SetCachedSize(int size) const { @@ -7416,7 +7455,9 @@ void MethodDescriptorProto::SharedDtor() { name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); input_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); output_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); - delete options_; + if (this != &default_instance_.get()) { + delete options_; + } } void MethodDescriptorProto::SetCachedSize(int size) const { diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc index 0e1be63c..29b60820 100644 --- a/src/google/protobuf/duration.pb.cc +++ b/src/google/protobuf/duration.pb.cc @@ -71,6 +71,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fduration_2eproto() { + Duration::default_instance_.Shutdown(); delete Duration_reflection_; } diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc index 45bba99b..c2c6283a 100644 --- a/src/google/protobuf/empty.pb.cc +++ b/src/google/protobuf/empty.pb.cc @@ -69,6 +69,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fempty_2eproto() { + Empty::default_instance_.Shutdown(); delete Empty_reflection_; } diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc index ffe513d3..b5545f23 100644 --- a/src/google/protobuf/field_mask.pb.cc +++ b/src/google/protobuf/field_mask.pb.cc @@ -70,6 +70,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2ffield_5fmask_2eproto() { + FieldMask::default_instance_.Shutdown(); delete FieldMask_reflection_; } diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h index 871acca5..8dc64c49 100644 --- a/src/google/protobuf/generated_message_util.h +++ b/src/google/protobuf/generated_message_util.h @@ -84,6 +84,12 @@ class ExplicitlyConstructed { } bool IsInitialized() { return init_; } + void Shutdown() { + if (init_) { + init_ = false; + get_mutable()->~T(); + } + } const T& get() const { return reinterpret_cast(union_); } T* get_mutable() { return reinterpret_cast(&union_); } diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc index 195a5d49..eac4775c 100644 --- a/src/google/protobuf/source_context.pb.cc +++ b/src/google/protobuf/source_context.pb.cc @@ -70,6 +70,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fsource_5fcontext_2eproto() { + SourceContext::default_instance_.Shutdown(); delete SourceContext_reflection_; } diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc index c609f879..7ef736e2 100644 --- a/src/google/protobuf/struct.pb.cc +++ b/src/google/protobuf/struct.pb.cc @@ -137,9 +137,12 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto() { + Struct::default_instance_.Shutdown(); delete Struct_reflection_; + Value::default_instance_.Shutdown(); delete Value_default_oneof_instance_; delete Value_reflection_; + ListValue::default_instance_.Shutdown(); delete ListValue_reflection_; } diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc index 54c6e868..cbf87425 100644 --- a/src/google/protobuf/timestamp.pb.cc +++ b/src/google/protobuf/timestamp.pb.cc @@ -71,6 +71,7 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2ftimestamp_2eproto() { + Timestamp::default_instance_.Shutdown(); delete Timestamp_reflection_; } diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc index 0c6de296..c2e5dc35 100644 --- a/src/google/protobuf/type.pb.cc +++ b/src/google/protobuf/type.pb.cc @@ -173,10 +173,15 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto() { + Type::default_instance_.Shutdown(); delete Type_reflection_; + Field::default_instance_.Shutdown(); delete Field_reflection_; + Enum::default_instance_.Shutdown(); delete Enum_reflection_; + EnumValue::default_instance_.Shutdown(); delete EnumValue_reflection_; + Option::default_instance_.Shutdown(); delete Option_reflection_; } @@ -390,7 +395,9 @@ void Type::SharedDtor() { } name_.Destroy(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), arena); - delete source_context_; + if (this != &default_instance_.get()) { + delete source_context_; + } } void Type::ArenaDtor(void* object) { @@ -2295,7 +2302,9 @@ void Enum::SharedDtor() { } name_.Destroy(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), arena); - delete source_context_; + if (this != &default_instance_.get()) { + delete source_context_; + } } void Enum::ArenaDtor(void* object) { @@ -3424,7 +3433,9 @@ void Option::SharedDtor() { } name_.Destroy(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), arena); - delete value_; + if (this != &default_instance_.get()) { + delete value_; + } } void Option::ArenaDtor(void* object) { diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc index 41f1a271..4e3ffbb9 100644 --- a/src/google/protobuf/wrappers.pb.cc +++ b/src/google/protobuf/wrappers.pb.cc @@ -222,14 +222,23 @@ void protobuf_RegisterTypes(const ::std::string&) { } // namespace void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto() { + DoubleValue::default_instance_.Shutdown(); delete DoubleValue_reflection_; + FloatValue::default_instance_.Shutdown(); delete FloatValue_reflection_; + Int64Value::default_instance_.Shutdown(); delete Int64Value_reflection_; + UInt64Value::default_instance_.Shutdown(); delete UInt64Value_reflection_; + Int32Value::default_instance_.Shutdown(); delete Int32Value_reflection_; + UInt32Value::default_instance_.Shutdown(); delete UInt32Value_reflection_; + BoolValue::default_instance_.Shutdown(); delete BoolValue_reflection_; + StringValue::default_instance_.Shutdown(); delete StringValue_reflection_; + BytesValue::default_instance_.Shutdown(); delete BytesValue_reflection_; } -- cgit v1.2.3