From 67e5187e96baac2e16d88ac01471c5ce7cdc3c53 Mon Sep 17 00:00:00 2001 From: ilovezfs Date: Wed, 20 Jun 2018 08:08:53 -0700 Subject: [PATCH] Fix build with protobuf 3.6.x Adapt to changes from https://github.com/google/protobuf/pull/4387. scoped_ptr and scoped_array were removed in favor of std::unique_ptr Signed-off-by: Fabrice Fontaine [Retrieved from: https://github.com/protobuf-c/protobuf-c/pull/328] --- protoc-c/c_field.cc | 2 +- protoc-c/c_field.h | 2 +- protoc-c/c_file.cc | 8 ++++---- protoc-c/c_file.h | 8 ++++---- protoc-c/c_generator.cc | 4 ++-- protoc-c/c_helpers.cc | 2 +- protoc-c/c_message.cc | 6 +++--- protoc-c/c_message.h | 6 +++--- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/protoc-c/c_field.cc b/protoc-c/c_field.cc index 9fa56ef..eaa38d2 100644 --- a/protoc-c/c_field.cc +++ b/protoc-c/c_field.cc @@ -189,7 +189,7 @@ void FieldGenerator::GenerateDescriptorInitializerGeneric(io::Printer* printer, FieldGeneratorMap::FieldGeneratorMap(const Descriptor* descriptor) : descriptor_(descriptor), field_generators_( - new scoped_ptr[descriptor->field_count()]) { + new std::unique_ptr[descriptor->field_count()]) { // Construct all the FieldGenerators. for (int i = 0; i < descriptor->field_count(); i++) { field_generators_[i].reset(MakeGenerator(descriptor->field(i))); diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h index 91f1a03..efd5a29 100644 --- a/protoc-c/c_field.h +++ b/protoc-c/c_field.h @@ -117,7 +117,7 @@ class FieldGeneratorMap { private: const Descriptor* descriptor_; - scoped_array > field_generators_; + std::unique_ptr[] > field_generators_; static FieldGenerator* MakeGenerator(const FieldDescriptor* field); diff --git a/protoc-c/c_file.cc b/protoc-c/c_file.cc index 9851768..6dae516 100644 --- a/protoc-c/c_file.cc +++ b/protoc-c/c_file.cc @@ -83,13 +83,13 @@ FileGenerator::FileGenerator(const FileDescriptor* file, const string& dllexport_decl) : file_(file), message_generators_( - new scoped_ptr[file->message_type_count()]), + new std::unique_ptr[file->message_type_count()]), enum_generators_( - new scoped_ptr[file->enum_type_count()]), + new std::unique_ptr[file->enum_type_count()]), service_generators_( - new scoped_ptr[file->service_count()]), + new std::unique_ptr[file->service_count()]), extension_generators_( - new scoped_ptr[file->extension_count()]) { + new std::unique_ptr[file->extension_count()]) { for (int i = 0; i < file->message_type_count(); i++) { message_generators_[i].reset( diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h index ed38ce4..e86cc44 100644 --- a/protoc-c/c_file.h +++ b/protoc-c/c_file.h @@ -98,10 +98,10 @@ class FileGenerator { private: const FileDescriptor* file_; - scoped_array > message_generators_; - scoped_array > enum_generators_; - scoped_array > service_generators_; - scoped_array > extension_generators_; + std::unique_ptr[] > message_generators_; + std::unique_ptr[] > enum_generators_; + std::unique_ptr[] > service_generators_; + std::unique_ptr[] > extension_generators_; // E.g. if the package is foo.bar, package_parts_ is {"foo", "bar"}. vector package_parts_; diff --git a/protoc-c/c_generator.cc b/protoc-c/c_generator.cc index a0d0cb6..fe3ad26 100644 --- a/protoc-c/c_generator.cc +++ b/protoc-c/c_generator.cc @@ -149,7 +149,7 @@ bool CGenerator::Generate(const FileDescriptor* file, // Generate header. { - scoped_ptr output( + std::unique_ptr output( output_directory->Open(basename + ".h")); io::Printer printer(output.get(), '$'); file_generator.GenerateHeader(&printer); @@ -157,7 +157,7 @@ bool CGenerator::Generate(const FileDescriptor* file, // Generate cc file. { - scoped_ptr output( + std::unique_ptr output( output_directory->Open(basename + ".c")); io::Printer printer(output.get(), '$'); file_generator.GenerateSource(&printer); diff --git a/protoc-c/c_helpers.cc b/protoc-c/c_helpers.cc index b79b5b0..f2ab448 100644 --- a/protoc-c/c_helpers.cc +++ b/protoc-c/c_helpers.cc @@ -559,7 +559,7 @@ static int CEscapeInternal(const char* src, int src_len, char* dest, } string CEscape(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); GOOGLE_DCHECK_GE(len, 0); diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc index 6b22c71..85a946e 100755 --- a/protoc-c/c_message.cc +++ b/protoc-c/c_message.cc @@ -83,11 +83,11 @@ MessageGenerator::MessageGenerator(const Descriptor* descriptor, : descriptor_(descriptor), dllexport_decl_(dllexport_decl), field_generators_(descriptor), - nested_generators_(new scoped_ptr[ + nested_generators_(new std::unique_ptr[ descriptor->nested_type_count()]), - enum_generators_(new scoped_ptr[ + enum_generators_(new std::unique_ptr[ descriptor->enum_type_count()]), - extension_generators_(new scoped_ptr[ + extension_generators_(new std::unique_ptr[ descriptor->extension_count()]) { for (int i = 0; i < descriptor->nested_type_count(); i++) { diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h index 8b115d1..63aa97a 100644 --- a/protoc-c/c_message.h +++ b/protoc-c/c_message.h @@ -126,9 +126,9 @@ class MessageGenerator { const Descriptor* descriptor_; string dllexport_decl_; FieldGeneratorMap field_generators_; - scoped_array > nested_generators_; - scoped_array > enum_generators_; - scoped_array > extension_generators_; + std::unique_ptr[] > nested_generators_; + std::unique_ptr[] > enum_generators_; + std::unique_ptr[] > extension_generators_; GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator); };