From 725951341604a90d46b378f5d987ecf49017e49f Mon Sep 17 00:00:00 2001 From: Christopher Burnett Date: Mon, 12 Dec 2016 18:35:35 -0500 Subject: [PATCH 1/2] prevent protoc errors by skipping previously gen'd files --- src/protoc-gen-php.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/protoc-gen-php.cc b/src/protoc-gen-php.cc index 7bc62df..a238385 100644 --- a/src/protoc-gen-php.cc +++ b/src/protoc-gen-php.cc @@ -47,6 +47,7 @@ #include using std::string; +using namespace std; using namespace google::protobuf; using namespace google::protobuf::compiler; @@ -71,6 +72,8 @@ bool PHPCodeGenerator::Generate(const FileDescriptor* file, assert(file != NULL); assert(context != NULL); + set generated_files; + string php_filename = FileDescriptorToPath(*file); cerr << "Generating " << php_filename << endl; @@ -85,8 +88,11 @@ bool PHPCodeGenerator::Generate(const FileDescriptor* file, main.Generate(error); for (int i = 0; i < file->dependency_count(); i++) { - // TODO Check if we have processed this file already (due to imports), and - // if so skip + if (generated_files.find(file->name()) == generated_files.end()) { + continue; + } + + generated_files.insert(file->name()); // TODO Keep track of this in the PHPCodeGenerator if (!Generate(file->dependency(i), parameter, context, error)) { return false; From f256524b30f5c992c459cb369da881067b127ebf Mon Sep 17 00:00:00 2001 From: Christopher Burnett Date: Tue, 13 Dec 2016 12:36:47 -0500 Subject: [PATCH 2/2] invert logic --- src/protoc-gen-php.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/protoc-gen-php.cc b/src/protoc-gen-php.cc index a238385..143f84e 100644 --- a/src/protoc-gen-php.cc +++ b/src/protoc-gen-php.cc @@ -88,7 +88,7 @@ bool PHPCodeGenerator::Generate(const FileDescriptor* file, main.Generate(error); for (int i = 0; i < file->dependency_count(); i++) { - if (generated_files.find(file->name()) == generated_files.end()) { + if (generated_files.find(file->name()) != generated_files.end()) { continue; }