diff options
author | Fabrice Fontaine <fontaine.fabrice@gmail.com> | 2018-06-23 18:40:18 +0200 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2018-06-23 22:58:20 +0200 |
commit | d479ef78fddc2454f171d3c58a0d09a356d9d3e4 (patch) | |
tree | dc1662063f88f6a2a7e5d42d031fca93b55b9cd0 /package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch | |
parent | c0d19a208300a850b04ddf397e937ba0b2599692 (diff) | |
download | buildroot-d479ef78fddc2454f171d3c58a0d09a356d9d3e4.tar.gz buildroot-d479ef78fddc2454f171d3c58a0d09a356d9d3e4.zip |
protobuf-c: fix build with protobuf 3.6
Add two patches retrieved from upstream
Fixes:
- http://autobuild.buildroot.net/results/26b84f2614f75ac101078a59afeb63bc4c0d28b7
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch')
-rw-r--r-- | package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch b/package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch new file mode 100644 index 0000000000..1469e01015 --- /dev/null +++ b/package/protobuf-c/0002-Fix-build-with-protobuf-3.6.x.patch @@ -0,0 +1,160 @@ +From 67e5187e96baac2e16d88ac01471c5ce7cdc3c53 Mon Sep 17 00:00:00 2001 +From: ilovezfs <ilovezfs@icloud.com> +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 <fontaine.fabrice@gmail.com> +[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<FieldGenerator>[descriptor->field_count()]) { ++ new std::unique_ptr<FieldGenerator>[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<scoped_ptr<FieldGenerator> > field_generators_; ++ std::unique_ptr<std::unique_ptr<FieldGenerator>[] > 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<MessageGenerator>[file->message_type_count()]), ++ new std::unique_ptr<MessageGenerator>[file->message_type_count()]), + enum_generators_( +- new scoped_ptr<EnumGenerator>[file->enum_type_count()]), ++ new std::unique_ptr<EnumGenerator>[file->enum_type_count()]), + service_generators_( +- new scoped_ptr<ServiceGenerator>[file->service_count()]), ++ new std::unique_ptr<ServiceGenerator>[file->service_count()]), + extension_generators_( +- new scoped_ptr<ExtensionGenerator>[file->extension_count()]) { ++ new std::unique_ptr<ExtensionGenerator>[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<scoped_ptr<MessageGenerator> > message_generators_; +- scoped_array<scoped_ptr<EnumGenerator> > enum_generators_; +- scoped_array<scoped_ptr<ServiceGenerator> > service_generators_; +- scoped_array<scoped_ptr<ExtensionGenerator> > extension_generators_; ++ std::unique_ptr<std::unique_ptr<MessageGenerator>[] > message_generators_; ++ std::unique_ptr<std::unique_ptr<EnumGenerator>[] > enum_generators_; ++ std::unique_ptr<std::unique_ptr<ServiceGenerator>[] > service_generators_; ++ std::unique_ptr<std::unique_ptr<ExtensionGenerator>[] > extension_generators_; + + // E.g. if the package is foo.bar, package_parts_ is {"foo", "bar"}. + vector<string> 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<io::ZeroCopyOutputStream> output( ++ std::unique_ptr<io::ZeroCopyOutputStream> 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<io::ZeroCopyOutputStream> output( ++ std::unique_ptr<io::ZeroCopyOutputStream> 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<char> dest(new char[dest_length]); ++ std::unique_ptr<char[]> 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<MessageGenerator>[ ++ nested_generators_(new std::unique_ptr<MessageGenerator>[ + descriptor->nested_type_count()]), +- enum_generators_(new scoped_ptr<EnumGenerator>[ ++ enum_generators_(new std::unique_ptr<EnumGenerator>[ + descriptor->enum_type_count()]), +- extension_generators_(new scoped_ptr<ExtensionGenerator>[ ++ extension_generators_(new std::unique_ptr<ExtensionGenerator>[ + 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<scoped_ptr<MessageGenerator> > nested_generators_; +- scoped_array<scoped_ptr<EnumGenerator> > enum_generators_; +- scoped_array<scoped_ptr<ExtensionGenerator> > extension_generators_; ++ std::unique_ptr<std::unique_ptr<MessageGenerator>[] > nested_generators_; ++ std::unique_ptr<std::unique_ptr<EnumGenerator>[] > enum_generators_; ++ std::unique_ptr<std::unique_ptr<ExtensionGenerator>[] > extension_generators_; + + GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator); + }; |