diff options
author | yang-g <yangg@google.com> | 2017-01-19 10:57:56 -0800 |
---|---|---|
committer | yang-g <yangg@google.com> | 2017-01-19 10:57:56 -0800 |
commit | 20115614e1ebbdfb8a3711d425f6edd6cd964734 (patch) | |
tree | 2885ac642d1d0701a4caf99bdad24e002444fee1 /src/compiler | |
parent | ada49f0978c0a4be6c18a511087bcca6c295b448 (diff) |
Stop generating method name array when there is no method.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/cpp_generator.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc index a26eeb46b9..e481aaf811 100644 --- a/src/compiler/cpp_generator.cc +++ b/src/compiler/cpp_generator.cc @@ -1218,13 +1218,15 @@ void PrintSourceService(Printer *printer, const Service *service, std::map<grpc::string, grpc::string> *vars) { (*vars)["Service"] = service->name(); - printer->Print(*vars, - "static const char* $prefix$$Service$_method_names[] = {\n"); - for (int i = 0; i < service->method_count(); ++i) { - (*vars)["Method"] = service->method(i).get()->name(); - printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n"); + if (service->method_count() > 0) { + printer->Print(*vars, + "static const char* $prefix$$Service$_method_names[] = {\n"); + for (int i = 0; i < service->method_count(); ++i) { + (*vars)["Method"] = service->method(i).get()->name(); + printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n"); + } + printer->Print(*vars, "};\n\n"); } - printer->Print(*vars, "};\n\n"); printer->Print(*vars, "std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub(" @@ -1272,7 +1274,6 @@ void PrintSourceService(Printer *printer, const Service *service, printer->Print(*vars, "$ns$$Service$::Service::Service() {\n"); printer->Indent(); - printer->Print(*vars, "(void)$prefix$$Service$_method_names;\n"); for (int i = 0; i < service->method_count(); ++i) { auto method = service->method(i); (*vars)["Idx"] = as_string(i); |