From 0400cca3236de1ca303af38bf81eab332d042b7c Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Tue, 13 Mar 2018 16:37:29 -0700 Subject: Integrated internal changes from Google --- conformance/conformance_test.cc | 4 ++++ conformance/failure_list_java.txt | 1 + conformance/failure_list_python.txt | 1 + conformance/failure_list_python_cpp.txt | 1 + 4 files changed, 7 insertions(+) (limited to 'conformance') diff --git a/conformance/conformance_test.cc b/conformance/conformance_test.cc index e4b046dc..7f68f4b2 100644 --- a/conformance/conformance_test.cc +++ b/conformance/conformance_test.cc @@ -1910,6 +1910,10 @@ bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner, { TestAllTypesProto3 messageProto3; TestAllTypesProto2 messageProto2; + //TODO(yilunchong): update this behavior when unknown field's behavior + // changed in open source. Also delete + // Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput + // from failure list of python_cpp python java TestUnknownMessage(messageProto3, true); TestUnknownMessage(messageProto2, false); } diff --git a/conformance/failure_list_java.txt b/conformance/failure_list_java.txt index dc1f9ba5..705db01a 100644 --- a/conformance/failure_list_java.txt +++ b/conformance/failure_list_java.txt @@ -45,3 +45,4 @@ Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValu Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE +Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file diff --git a/conformance/failure_list_python.txt b/conformance/failure_list_python.txt index e3ce7af7..2c650b64 100644 --- a/conformance/failure_list_python.txt +++ b/conformance/failure_list_python.txt @@ -19,3 +19,4 @@ Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_0 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_1 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_2 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_3 +Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file diff --git a/conformance/failure_list_python_cpp.txt b/conformance/failure_list_python_cpp.txt index a498ad1a..c1c681e9 100644 --- a/conformance/failure_list_python_cpp.txt +++ b/conformance/failure_list_python_cpp.txt @@ -52,3 +52,4 @@ Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT32 Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT64 Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT32 Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT64 +Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file -- cgit v1.2.3 From 67952fab2c766ac5eacc15bb78e5af4039a3d398 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Wed, 14 Mar 2018 11:17:48 -0700 Subject: Deleted scoped_ptr.h We no longer need this, now that we have finished the switch to C++11 and are using std::unique_ptr. --- conformance/conformance_cpp.cc | 1 - conformance/conformance_test.h | 3 +- conformance/conformance_test_runner.cc | 3 +- src/google/protobuf/compiler/csharp/csharp_enum.cc | 2 - .../protobuf/compiler/csharp/csharp_field_base.cc | 2 - .../protobuf/compiler/csharp/csharp_generator.cc | 4 +- .../protobuf/compiler/csharp/csharp_map_field.cc | 4 +- .../protobuf/compiler/csharp/csharp_message.cc | 22 +- .../csharp/csharp_repeated_message_field.cc | 4 +- .../protobuf/compiler/javanano/javanano_field.cc | 2 +- .../protobuf/compiler/javanano/javanano_field.h | 2 +- .../protobuf/compiler/javanano/javanano_file.cc | 2 +- .../compiler/javanano/javanano_generator.cc | 4 +- .../protobuf/compiler/javanano/javanano_message.cc | 4 +- .../compiler/objectivec/objectivec_field.cc | 4 +- .../compiler/objectivec/objectivec_field.h | 4 +- .../compiler/objectivec/objectivec_generator.cc | 4 +- .../compiler/objectivec/objectivec_map_field.h | 2 +- .../compiler/objectivec/objectivec_message.cc | 6 +- src/google/protobuf/compiler/php/php_generator.cc | 10 +- .../protobuf/compiler/ruby/ruby_generator.cc | 4 +- src/google/protobuf/dynamic_message.cc | 4 +- src/google/protobuf/stubs/common.h | 12 -- src/google/protobuf/stubs/map_util.h | 3 +- src/google/protobuf/stubs/once_unittest.cc | 4 +- src/google/protobuf/stubs/scoped_ptr.h | 236 --------------------- src/google/protobuf/stubs/strutil.cc | 8 +- 27 files changed, 49 insertions(+), 311 deletions(-) delete mode 100644 src/google/protobuf/stubs/scoped_ptr.h (limited to 'conformance') diff --git a/conformance/conformance_cpp.cc b/conformance/conformance_cpp.cc index 9540b50e..97ae1a7a 100644 --- a/conformance/conformance_cpp.cc +++ b/conformance/conformance_cpp.cc @@ -45,7 +45,6 @@ using google::protobuf::Descriptor; using google::protobuf::DescriptorPool; using google::protobuf::Message; using google::protobuf::MessageFactory; -using google::protobuf::internal::scoped_ptr; using google::protobuf::util::BinaryToJsonString; using google::protobuf::util::JsonToBinaryString; using google::protobuf::util::NewTypeResolverForDescriptorPool; diff --git a/conformance/conformance_test.h b/conformance/conformance_test.h index 4882412c..2649f8b2 100644 --- a/conformance/conformance_test.h +++ b/conformance/conformance_test.h @@ -256,8 +256,7 @@ class ConformanceTestSuite { // The set of tests that the testee opted out of; std::set skipped_; - google::protobuf::internal::scoped_ptr - type_resolver_; + std::unique_ptr type_resolver_; std::string type_url_; }; diff --git a/conformance/conformance_test_runner.cc b/conformance/conformance_test_runner.cc index 09631f0c..b0357b87 100644 --- a/conformance/conformance_test_runner.cc +++ b/conformance/conformance_test_runner.cc @@ -68,7 +68,6 @@ using conformance::ConformanceRequest; using conformance::ConformanceResponse; -using google::protobuf::internal::scoped_array; using google::protobuf::StringAppendF; using std::string; using std::vector; @@ -183,7 +182,7 @@ class ForkPipeRunner : public google::protobuf::ConformanceTestRunner { CHECK_SYSCALL(close(toproc_pipe_fd[1])); CHECK_SYSCALL(close(fromproc_pipe_fd[0])); - scoped_array executable(new char[executable_.size() + 1]); + std::unique_ptr executable(new char[executable_.size() + 1]); memcpy(executable.get(), executable_.c_str(), executable_.size()); executable[executable_.size()] = '\0'; diff --git a/src/google/protobuf/compiler/csharp/csharp_enum.cc b/src/google/protobuf/compiler/csharp/csharp_enum.cc index 9759e3ef..32c71990 100644 --- a/src/google/protobuf/compiler/csharp/csharp_enum.cc +++ b/src/google/protobuf/compiler/csharp/csharp_enum.cc @@ -43,8 +43,6 @@ #include #include -using google::protobuf::internal::scoped_ptr; - namespace google { namespace protobuf { namespace compiler { diff --git a/src/google/protobuf/compiler/csharp/csharp_field_base.cc b/src/google/protobuf/compiler/csharp/csharp_field_base.cc index ecf29ece..7e737e47 100644 --- a/src/google/protobuf/compiler/csharp/csharp_field_base.cc +++ b/src/google/protobuf/compiler/csharp/csharp_field_base.cc @@ -46,8 +46,6 @@ #include #include -using google::protobuf::internal::scoped_ptr; - namespace google { namespace protobuf { namespace compiler { diff --git a/src/google/protobuf/compiler/csharp/csharp_generator.cc b/src/google/protobuf/compiler/csharp/csharp_generator.cc index 5418127f..0c93fc29 100644 --- a/src/google/protobuf/compiler/csharp/csharp_generator.cc +++ b/src/google/protobuf/compiler/csharp/csharp_generator.cc @@ -44,8 +44,6 @@ #include #include -using google::protobuf::internal::scoped_ptr; - namespace google { namespace protobuf { namespace compiler { @@ -100,7 +98,7 @@ bool Generator::Generate( *error = filename_error; return false; } - scoped_ptr output( + std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '$'); diff --git a/src/google/protobuf/compiler/csharp/csharp_map_field.cc b/src/google/protobuf/compiler/csharp/csharp_map_field.cc index e6eac6ed..d58514ce 100644 --- a/src/google/protobuf/compiler/csharp/csharp_map_field.cc +++ b/src/google/protobuf/compiler/csharp/csharp_map_field.cc @@ -63,9 +63,9 @@ void MapFieldGenerator::GenerateMembers(io::Printer* printer) { descriptor_->message_type()->FindFieldByName("value"); variables_["key_type_name"] = type_name(key_descriptor); variables_["value_type_name"] = type_name(value_descriptor); - scoped_ptr key_generator( + std::unique_ptr key_generator( CreateFieldGenerator(key_descriptor, 1, this->options())); - scoped_ptr value_generator( + std::unique_ptr value_generator( CreateFieldGenerator(value_descriptor, 2, this->options())); printer->Print( diff --git a/src/google/protobuf/compiler/csharp/csharp_message.cc b/src/google/protobuf/compiler/csharp/csharp_message.cc index 17b4a071..8a4307f1 100644 --- a/src/google/protobuf/compiler/csharp/csharp_message.cc +++ b/src/google/protobuf/compiler/csharp/csharp_message.cc @@ -49,8 +49,6 @@ #include #include -using google::protobuf::internal::scoped_ptr; - namespace google { namespace protobuf { namespace compiler { @@ -184,7 +182,7 @@ void MessageGenerator::Generate(io::Printer* printer) { "field_name", fieldDescriptor->name(), "field_constant_name", GetFieldConstantName(fieldDescriptor), "index", SimpleItoa(fieldDescriptor->number())); - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(fieldDescriptor)); generator->GenerateMembers(printer); printer->Print("\n"); @@ -293,7 +291,7 @@ void MessageGenerator::GenerateCloningCode(io::Printer* printer) { // Clone non-oneof fields first for (int i = 0; i < descriptor_->field_count(); i++) { if (!descriptor_->field(i)->containing_oneof()) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(descriptor_->field(i))); generator->GenerateCloningCode(printer); } @@ -307,7 +305,7 @@ void MessageGenerator::GenerateCloningCode(io::Printer* printer) { printer->Indent(); for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) { const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j); - scoped_ptr generator(CreateFieldGeneratorInternal(field)); + std::unique_ptr generator(CreateFieldGeneratorInternal(field)); vars["field_property_name"] = GetPropertyName(field); printer->Print( vars, @@ -361,7 +359,7 @@ void MessageGenerator::GenerateFrameworkMethods(io::Printer* printer) { " }\n"); printer->Indent(); for (int i = 0; i < descriptor_->field_count(); i++) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(descriptor_->field(i))); generator->WriteEquals(printer); } @@ -382,7 +380,7 @@ void MessageGenerator::GenerateFrameworkMethods(io::Printer* printer) { " int hash = 1;\n"); printer->Indent(); for (int i = 0; i < descriptor_->field_count(); i++) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(descriptor_->field(i))); generator->WriteHash(printer); } @@ -413,7 +411,7 @@ void MessageGenerator::GenerateMessageSerializationMethods(io::Printer* printer) // Serialize all the fields for (int i = 0; i < fields_by_number().size(); i++) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(fields_by_number()[i])); generator->GenerateSerializationCode(printer); } @@ -435,7 +433,7 @@ void MessageGenerator::GenerateMessageSerializationMethods(io::Printer* printer) printer->Indent(); printer->Print("int size = 0;\n"); for (int i = 0; i < descriptor_->field_count(); i++) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(descriptor_->field(i))); generator->GenerateSerializedSizeCode(printer); } @@ -469,7 +467,7 @@ void MessageGenerator::GenerateMergingMethods(io::Printer* printer) { // Merge non-oneof fields for (int i = 0; i < descriptor_->field_count(); i++) { if (!descriptor_->field(i)->containing_oneof()) { - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(descriptor_->field(i))); generator->GenerateMergingCode(printer); } @@ -487,7 +485,7 @@ void MessageGenerator::GenerateMergingMethods(io::Printer* printer) { vars, "case $property_name$OneofCase.$field_property_name$:\n"); printer->Indent(); - scoped_ptr generator(CreateFieldGeneratorInternal(field)); + std::unique_ptr generator(CreateFieldGeneratorInternal(field)); generator->GenerateMergingCode(printer); printer->Print("break;\n"); printer->Outdent(); @@ -546,7 +544,7 @@ void MessageGenerator::GenerateMergingMethods(io::Printer* printer) { printer->Print("case $tag$: {\n", "tag", SimpleItoa(tag)); printer->Indent(); - scoped_ptr generator( + std::unique_ptr generator( CreateFieldGeneratorInternal(field)); generator->GenerateParsingCode(printer); printer->Print("break;\n"); diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc index 8fa0b050..90af569c 100644 --- a/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc +++ b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc @@ -66,11 +66,11 @@ void RepeatedMessageFieldGenerator::GenerateMembers(io::Printer* printer) { // "create single field generator for this repeated field" // function, but it doesn't seem worth it for just this. if (IsWrapperType(descriptor_)) { - scoped_ptr single_generator( + std::unique_ptr single_generator( new WrapperFieldGenerator(descriptor_, fieldOrdinal_, this->options())); single_generator->GenerateCodecCode(printer); } else { - scoped_ptr single_generator( + std::unique_ptr single_generator( new MessageFieldGenerator(descriptor_, fieldOrdinal_, this->options())); single_generator->GenerateCodecCode(printer); } diff --git a/src/google/protobuf/compiler/javanano/javanano_field.cc b/src/google/protobuf/compiler/javanano/javanano_field.cc index e31d1177..0c134fe1 100644 --- a/src/google/protobuf/compiler/javanano/javanano_field.cc +++ b/src/google/protobuf/compiler/javanano/javanano_field.cc @@ -76,7 +76,7 @@ FieldGeneratorMap::FieldGeneratorMap( const Descriptor* descriptor, const Params ¶ms) : descriptor_(descriptor), field_generators_( - new scoped_ptr[descriptor->field_count()]) { + new std::unique_ptr[descriptor->field_count()]) { int next_has_bit_index = 0; bool saved_defaults_needed = false; diff --git a/src/google/protobuf/compiler/javanano/javanano_field.h b/src/google/protobuf/compiler/javanano/javanano_field.h index 347c888c..e3701f10 100644 --- a/src/google/protobuf/compiler/javanano/javanano_field.h +++ b/src/google/protobuf/compiler/javanano/javanano_field.h @@ -103,7 +103,7 @@ class FieldGeneratorMap { private: const Descriptor* descriptor_; - scoped_array > field_generators_; + std::unique_ptr[]> field_generators_; int total_bits_; bool saved_defaults_needed_; diff --git a/src/google/protobuf/compiler/javanano/javanano_file.cc b/src/google/protobuf/compiler/javanano/javanano_file.cc index 7a661a42..9acdc3b5 100644 --- a/src/google/protobuf/compiler/javanano/javanano_file.cc +++ b/src/google/protobuf/compiler/javanano/javanano_file.cc @@ -221,7 +221,7 @@ static void GenerateSibling(const string& package_dir, string filename = package_dir + descriptor->name() + ".java"; file_list->push_back(filename); - scoped_ptr output( + std::unique_ptr output( output_directory->Open(filename)); io::Printer printer(output.get(), '$'); diff --git a/src/google/protobuf/compiler/javanano/javanano_generator.cc b/src/google/protobuf/compiler/javanano/javanano_generator.cc index fd7151b1..64ba3336 100644 --- a/src/google/protobuf/compiler/javanano/javanano_generator.cc +++ b/src/google/protobuf/compiler/javanano/javanano_generator.cc @@ -200,7 +200,7 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file, all_files.push_back(java_filename); // Generate main java file. - scoped_ptr output( + std::unique_ptr output( output_directory->Open(java_filename)); io::Printer printer(output.get(), '$'); file_generator.Generate(&printer); @@ -213,7 +213,7 @@ bool JavaNanoGenerator::Generate(const FileDescriptor* file, if (!output_list_file.empty()) { // Generate output list. This is just a simple text file placed in a // deterministic location which lists the .java files being generated. - scoped_ptr srclist_raw_output( + std::unique_ptr srclist_raw_output( output_directory->Open(output_list_file)); io::Printer srclist_printer(srclist_raw_output.get(), '$'); for (int i = 0; i < all_files.size(); i++) { diff --git a/src/google/protobuf/compiler/javanano/javanano_message.cc b/src/google/protobuf/compiler/javanano/javanano_message.cc index 78421887..e849521b 100644 --- a/src/google/protobuf/compiler/javanano/javanano_message.cc +++ b/src/google/protobuf/compiler/javanano/javanano_message.cc @@ -349,7 +349,7 @@ GenerateMessageSerializationMethods(io::Printer* printer) { return; } - scoped_array sorted_fields( + std::unique_ptr sorted_fields( SortFieldsByNumber(descriptor_)); printer->Print( @@ -391,7 +391,7 @@ GenerateMessageSerializationMethods(io::Printer* printer) { } void MessageGenerator::GenerateMergeFromMethods(io::Printer* printer) { - scoped_array sorted_fields( + std::unique_ptr sorted_fields( SortFieldsByNumber(descriptor_)); printer->Print( diff --git a/src/google/protobuf/compiler/objectivec/objectivec_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_field.cc index b6123fad..67b026c3 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_field.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_field.cc @@ -411,9 +411,9 @@ FieldGeneratorMap::FieldGeneratorMap(const Descriptor* descriptor, const Options& options) : descriptor_(descriptor), field_generators_( - new scoped_ptr[descriptor->field_count()]), + new std::unique_ptr[descriptor->field_count()]), extension_generators_( - new scoped_ptr[descriptor->extension_count()]) { + new std::unique_ptr[descriptor->extension_count()]) { // Construct all the FieldGenerators. for (int i = 0; i < descriptor->field_count(); i++) { field_generators_[i].reset( diff --git a/src/google/protobuf/compiler/objectivec/objectivec_field.h b/src/google/protobuf/compiler/objectivec/objectivec_field.h index 6bd5db2e..888cfefc 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_field.h +++ b/src/google/protobuf/compiler/objectivec/objectivec_field.h @@ -182,8 +182,8 @@ class FieldGeneratorMap { private: const Descriptor* descriptor_; - scoped_array > field_generators_; - scoped_array > extension_generators_; + std::unique_ptr[]> field_generators_; + std::unique_ptr[]> extension_generators_; GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap); }; diff --git a/src/google/protobuf/compiler/objectivec/objectivec_generator.cc b/src/google/protobuf/compiler/objectivec/objectivec_generator.cc index 760ff481..e0597cc7 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_generator.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_generator.cc @@ -142,7 +142,7 @@ bool ObjectiveCGenerator::GenerateAll(const std::vector& // Generate header. { - scoped_ptr output( + std::unique_ptr output( context->Open(filepath + ".pbobjc.h")); io::Printer printer(output.get(), '$'); file_generator.GenerateHeader(&printer); @@ -150,7 +150,7 @@ bool ObjectiveCGenerator::GenerateAll(const std::vector& // Generate m file. { - scoped_ptr output( + std::unique_ptr output( context->Open(filepath + ".pbobjc.m")); io::Printer printer(output.get(), '$'); file_generator.GenerateSource(&printer); diff --git a/src/google/protobuf/compiler/objectivec/objectivec_map_field.h b/src/google/protobuf/compiler/objectivec/objectivec_map_field.h index 6664d849..dc7beacf 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_map_field.h +++ b/src/google/protobuf/compiler/objectivec/objectivec_map_field.h @@ -54,7 +54,7 @@ class MapFieldGenerator : public RepeatedFieldGenerator { virtual void DetermineForwardDeclarations(std::set* fwd_decls) const; private: - scoped_ptr value_field_generator_; + std::unique_ptr value_field_generator_; GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapFieldGenerator); }; diff --git a/src/google/protobuf/compiler/objectivec/objectivec_message.cc b/src/google/protobuf/compiler/objectivec/objectivec_message.cc index f1465c3e..83888854 100644 --- a/src/google/protobuf/compiler/objectivec/objectivec_message.cc +++ b/src/google/protobuf/compiler/objectivec/objectivec_message.cc @@ -310,7 +310,7 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) { "classname", class_name_); if (descriptor_->field_count()) { - scoped_array sorted_fields( + std::unique_ptr sorted_fields( SortFieldsByNumber(descriptor_)); printer->Print("typedef GPB_ENUM($classname$_FieldNumber) {\n", @@ -420,9 +420,9 @@ void MessageGenerator::GenerateSource(io::Printer* printer) { .GeneratePropertyImplementation(printer); } - scoped_array sorted_fields( + std::unique_ptr sorted_fields( SortFieldsByNumber(descriptor_)); - scoped_array size_order_fields( + std::unique_ptr size_order_fields( SortFieldsByStorageSize(descriptor_)); std::vector sorted_extensions; diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index eefdb196..4e237fc7 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -40,8 +40,6 @@ #include -using google::protobuf::internal::scoped_ptr; - const std::string kDescriptorFile = "google/protobuf/descriptor.proto"; const std::string kEmptyFile = "google/protobuf/empty.proto"; const std::string kEmptyMetadataFile = "GPBMetadata/Google/Protobuf/GPBEmpty.php"; @@ -948,7 +946,7 @@ void GenerateMetadataFile(const FileDescriptor* file, bool is_descriptor, GeneratorContext* generator_context) { std::string filename = GeneratedMetadataFileName(file->name(), is_descriptor); - scoped_ptr output( + std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '^'); @@ -983,7 +981,7 @@ void GenerateMetadataFile(const FileDescriptor* file, void GenerateEnumFile(const FileDescriptor* file, const EnumDescriptor* en, bool is_descriptor, GeneratorContext* generator_context) { std::string filename = GeneratedEnumFileName(en, is_descriptor); - scoped_ptr output( + std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '^'); @@ -1042,7 +1040,7 @@ void GenerateMessageFile(const FileDescriptor* file, const Descriptor* message, } std::string filename = GeneratedMessageFileName(message, is_descriptor); - scoped_ptr output( + std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '^'); @@ -1143,7 +1141,7 @@ void GenerateServiceFile(const FileDescriptor* file, const ServiceDescriptor* service, bool is_descriptor, GeneratorContext* generator_context) { std::string filename = GeneratedServiceFileName(service, is_descriptor); - scoped_ptr output( + std::unique_ptr output( generator_context->Open(filename)); io::Printer printer(output.get(), '^'); diff --git a/src/google/protobuf/compiler/ruby/ruby_generator.cc b/src/google/protobuf/compiler/ruby/ruby_generator.cc index fbe3b4cb..02aa61d1 100644 --- a/src/google/protobuf/compiler/ruby/ruby_generator.cc +++ b/src/google/protobuf/compiler/ruby/ruby_generator.cc @@ -39,8 +39,6 @@ #include -using google::protobuf::internal::scoped_ptr; - namespace google { namespace protobuf { namespace compiler { @@ -488,7 +486,7 @@ bool Generator::Generate( return false; } - scoped_ptr output( + std::unique_ptr output( generator_context->Open(GetOutputFilename(file->name()))); io::Printer printer(output.get(), '$'); diff --git a/src/google/protobuf/dynamic_message.cc b/src/google/protobuf/dynamic_message.cc index 44bdd85d..ceedf500 100644 --- a/src/google/protobuf/dynamic_message.cc +++ b/src/google/protobuf/dynamic_message.cc @@ -232,10 +232,10 @@ class DynamicMessage : public Message { std::unique_ptr offsets; std::unique_ptr has_bits_indices; std::unique_ptr reflection; - // Don't use a scoped_ptr to hold the prototype: the destructor for + // Don't use a unique_ptr to hold the prototype: the destructor for // DynamicMessage needs to know whether it is the prototype, and does so by // looking back at this field. This would assume details about the - // implementation of scoped_ptr. + // implementation of unique_ptr. const DynamicMessage* prototype; int weak_field_map_offset; // The offset for the weak_field_map; diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 2fe8a98b..c336383d 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -231,18 +231,6 @@ class FatalException : public std::exception { // in some versions of MSVC. using std::string; -// TODO(gerbens) remove once an extraction cycle has removed all references -namespace internal { -template -using scoped_ptr = std::unique_ptr; -template -using scoped_array = std::unique_ptr; -} // namespace internal -template -using scoped_ptr = std::unique_ptr; -template -using scoped_array = std::unique_ptr; - } // namespace protobuf } // namespace google diff --git a/src/google/protobuf/stubs/map_util.h b/src/google/protobuf/stubs/map_util.h index 16cbfac4..3e6d381f 100644 --- a/src/google/protobuf/stubs/map_util.h +++ b/src/google/protobuf/stubs/map_util.h @@ -654,7 +654,8 @@ InsertOrReturnExisting( // delete EraseKeyReturnValuePtr(&my_map, "abc"); // // Use returned value: -// scoped_ptr value_ptr(EraseKeyReturnValuePtr(&my_map, "abc")); +// std::unique_ptr value_ptr( +// EraseKeyReturnValuePtr(&my_map, "abc")); // if (value_ptr.get()) // value_ptr->DoSomething(); // diff --git a/src/google/protobuf/stubs/once_unittest.cc b/src/google/protobuf/stubs/once_unittest.cc index d5f7779e..cdd353d8 100644 --- a/src/google/protobuf/stubs/once_unittest.cc +++ b/src/google/protobuf/stubs/once_unittest.cc @@ -207,7 +207,7 @@ GOOGLE_PROTOBUF_DECLARE_ONCE(multiple_threads_once); TEST_F(OnceInitTest, MultipleThreads) { SetOnces(&multiple_threads_once, NULL); - scoped_ptr threads[4]; + std::unique_ptr threads[4]; EXPECT_EQ(INIT_NOT_STARTED, CurrentState()); for (int i = 0; i < 4; i++) { threads[i].reset(RunInitOnceInNewThread()); @@ -224,7 +224,7 @@ GOOGLE_PROTOBUF_DECLARE_ONCE(multiple_threads_blocked_once2); TEST_F(OnceInitTest, MultipleThreadsBlocked) { SetOnces(&multiple_threads_blocked_once1, &multiple_threads_blocked_once2); - scoped_ptr threads[8]; + std::unique_ptr threads[8]; EXPECT_EQ(INIT_NOT_STARTED, CurrentState()); BlockInit(); diff --git a/src/google/protobuf/stubs/scoped_ptr.h b/src/google/protobuf/stubs/scoped_ptr.h deleted file mode 100644 index 4423c118..00000000 --- a/src/google/protobuf/stubs/scoped_ptr.h +++ /dev/null @@ -1,236 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#ifndef GOOGLE_PROTOBUF_STUBS_SCOPED_PTR_H_ -#define GOOGLE_PROTOBUF_STUBS_SCOPED_PTR_H_ - -#include - -namespace google { -namespace protobuf { - -// =================================================================== -// from google3/base/scoped_ptr.h - -namespace internal { - -// This is an implementation designed to match the anticipated future TR2 -// implementation of the scoped_ptr class, and its closely-related brethren, -// scoped_array, scoped_ptr_malloc, and make_scoped_ptr. - -template class scoped_ptr; -template class scoped_array; - -// A scoped_ptr is like a T*, except that the destructor of scoped_ptr -// automatically deletes the pointer it holds (if any). -// That is, scoped_ptr owns the T object that it points to. -// Like a T*, a scoped_ptr may hold either NULL or a pointer to a T object. -// -// The size of a scoped_ptr is small: -// sizeof(scoped_ptr) == sizeof(C*) -template -class scoped_ptr { - public: - - // The element type - typedef C element_type; - - // Constructor. Defaults to initializing with NULL. - // There is no way to create an uninitialized scoped_ptr. - // The input parameter must be allocated with new. - explicit scoped_ptr(C* p = NULL) : ptr_(p) { } - - // Destructor. If there is a C object, delete it. - // We don't need to test ptr_ == NULL because C++ does that for us. - ~scoped_ptr() { - enum { type_must_be_complete = sizeof(C) }; - delete ptr_; - } - - // Reset. Deletes the current owned object, if any. - // Then takes ownership of a new object, if given. - // this->reset(this->get()) works. - void reset(C* p = NULL) { - if (p != ptr_) { - enum { type_must_be_complete = sizeof(C) }; - delete ptr_; - ptr_ = p; - } - } - - // Accessors to get the owned object. - // operator* and operator-> will assert() if there is no current object. - C& operator*() const { - assert(ptr_ != NULL); - return *ptr_; - } - C* operator->() const { - assert(ptr_ != NULL); - return ptr_; - } - C* get() const { return ptr_; } - - // Comparison operators. - // These return whether two scoped_ptr refer to the same object, not just to - // two different but equal objects. - bool operator==(C* p) const { return ptr_ == p; } - bool operator!=(C* p) const { return ptr_ != p; } - - // Swap two scoped pointers. - void swap(scoped_ptr& p2) { - C* tmp = ptr_; - ptr_ = p2.ptr_; - p2.ptr_ = tmp; - } - - // Release a pointer. - // The return value is the current pointer held by this object. - // If this object holds a NULL pointer, the return value is NULL. - // After this operation, this object will hold a NULL pointer, - // and will not own the object any more. - C* release() { - C* retVal = ptr_; - ptr_ = NULL; - return retVal; - } - - private: - C* ptr_; - - // Forbid comparison of scoped_ptr types. If C2 != C, it totally doesn't - // make sense, and if C2 == C, it still doesn't make sense because you should - // never have the same object owned by two different scoped_ptrs. - template bool operator==(scoped_ptr const& p2) const; - template bool operator!=(scoped_ptr const& p2) const; - - // Disallow evil constructors - scoped_ptr(const scoped_ptr&); - void operator=(const scoped_ptr&); -}; - -// scoped_array is like scoped_ptr, except that the caller must allocate -// with new [] and the destructor deletes objects with delete []. -// -// As with scoped_ptr, a scoped_array either points to an object -// or is NULL. A scoped_array owns the object that it points to. -// -// Size: sizeof(scoped_array) == sizeof(C*) -template -class scoped_array { - public: - - // The element type - typedef C element_type; - - // Constructor. Defaults to initializing with NULL. - // There is no way to create an uninitialized scoped_array. - // The input parameter must be allocated with new []. - explicit scoped_array(C* p = NULL) : array_(p) { } - - // Destructor. If there is a C object, delete it. - // We don't need to test ptr_ == NULL because C++ does that for us. - ~scoped_array() { - enum { type_must_be_complete = sizeof(C) }; - delete[] array_; - } - - // Reset. Deletes the current owned object, if any. - // Then takes ownership of a new object, if given. - // this->reset(this->get()) works. - void reset(C* p = NULL) { - if (p != array_) { - enum { type_must_be_complete = sizeof(C) }; - delete[] array_; - array_ = p; - } - } - - // Get one element of the current object. - // Will assert() if there is no current object, or index i is negative. - C& operator[](std::ptrdiff_t i) const { - assert(i >= 0); - assert(array_ != NULL); - return array_[i]; - } - - // Get a pointer to the zeroth element of the current object. - // If there is no current object, return NULL. - C* get() const { - return array_; - } - - // Comparison operators. - // These return whether two scoped_array refer to the same object, not just to - // two different but equal objects. - bool operator==(C* p) const { return array_ == p; } - bool operator!=(C* p) const { return array_ != p; } - - // Swap two scoped arrays. - void swap(scoped_array& p2) { - C* tmp = array_; - array_ = p2.array_; - p2.array_ = tmp; - } - - // Release an array. - // The return value is the current pointer held by this object. - // If this object holds a NULL pointer, the return value is NULL. - // After this operation, this object will hold a NULL pointer, - // and will not own the object any more. - C* release() { - C* retVal = array_; - array_ = NULL; - return retVal; - } - - private: - C* array_; - - // Forbid comparison of different scoped_array types. - template bool operator==(scoped_array const& p2) const; - template bool operator!=(scoped_array const& p2) const; - - // Disallow evil constructors - scoped_array(const scoped_array&); - void operator=(const scoped_array&); -}; - -} // namespace internal - -// We made these internal so that they would show up as such in the docs, -// but we don't want to stick "internal::" in front of them everywhere. -using internal::scoped_ptr; -using internal::scoped_array; - - -} // namespace protobuf -} // namespace google - -#endif // GOOGLE_PROTOBUF_STUBS_SCOPED_PTR_H_ diff --git a/src/google/protobuf/stubs/strutil.cc b/src/google/protobuf/stubs/strutil.cc index 28bcd3b2..552d416f 100644 --- a/src/google/protobuf/stubs/strutil.cc +++ b/src/google/protobuf/stubs/strutil.cc @@ -469,7 +469,7 @@ int UnescapeCEscapeString(const string& src, string* dest) { int UnescapeCEscapeString(const string& src, string* dest, std::vector *errors) { - scoped_array unescaped(new char[src.size() + 1]); + std::unique_ptr unescaped(new char[src.size() + 1]); int len = UnescapeCEscapeSequences(src.c_str(), unescaped.get(), errors); GOOGLE_CHECK(dest); dest->assign(unescaped.get(), len); @@ -477,7 +477,7 @@ int UnescapeCEscapeString(const string& src, string* dest, } string UnescapeCEscapeString(const string& src) { - scoped_array unescaped(new char[src.size() + 1]); + std::unique_ptr unescaped(new char[src.size() + 1]); int len = UnescapeCEscapeSequences(src.c_str(), unescaped.get(), NULL); return string(unescaped.get(), len); } @@ -620,7 +620,7 @@ namespace strings { string Utf8SafeCEscape(const string& src) { const int dest_length = src.size() * 4 + 1; // Maximum possible expansion - scoped_array dest(new char[dest_length]); + std::unique_ptr dest(new char[dest_length]); const int len = CEscapeInternal(src.data(), src.size(), dest.get(), dest_length, false, true); GOOGLE_DCHECK_GE(len, 0); @@ -629,7 +629,7 @@ string Utf8SafeCEscape(const string& src) { string CHexEscape(const string& src) { const int dest_length = src.size() * 4 + 1; // Maximum possible expansion - scoped_array dest(new char[dest_length]); + std::unique_ptr dest(new char[dest_length]); const int len = CEscapeInternal(src.data(), src.size(), dest.get(), dest_length, true, false); GOOGLE_DCHECK_GE(len, 0); -- cgit v1.2.3 From ec40953257b913e6be907868797f35493048e7cf Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Tue, 20 Mar 2018 10:59:49 -0700 Subject: Updated conformance failure lists --- conformance/failure_list_java.txt | 1 - conformance/failure_list_python.txt | 1 - conformance/failure_list_python_cpp.txt | 1 - 3 files changed, 3 deletions(-) (limited to 'conformance') diff --git a/conformance/failure_list_java.txt b/conformance/failure_list_java.txt index 705db01a..dc1f9ba5 100644 --- a/conformance/failure_list_java.txt +++ b/conformance/failure_list_java.txt @@ -45,4 +45,3 @@ Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValu Required.Proto3.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE Required.Proto2.ProtobufInput.PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE -Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file diff --git a/conformance/failure_list_python.txt b/conformance/failure_list_python.txt index 2c650b64..e3ce7af7 100644 --- a/conformance/failure_list_python.txt +++ b/conformance/failure_list_python.txt @@ -19,4 +19,3 @@ Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_0 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_1 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_2 Required.Proto3.ProtobufInput.IllegalZeroFieldNum_Case_3 -Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file diff --git a/conformance/failure_list_python_cpp.txt b/conformance/failure_list_python_cpp.txt index c1c681e9..a498ad1a 100644 --- a/conformance/failure_list_python_cpp.txt +++ b/conformance/failure_list_python_cpp.txt @@ -52,4 +52,3 @@ Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT32 Required.Proto2.ProtobufInput.PrematureEofInPackedField.SINT64 Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT32 Required.Proto2.ProtobufInput.PrematureEofInPackedField.UINT64 -Required.Proto3.ProtobufInput.UnknownVarint.ProtobufOutput \ No newline at end of file -- cgit v1.2.3