unaccepted-pr29311-port-undef.patch 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc
  2. index b63ee5c..9a9f51c 100644
  3. --- a/src/compiler/cpp_generator.cc
  4. +++ b/src/compiler/cpp_generator.cc
  5. @@ -169,6 +169,9 @@ TString GetHeaderIncludes(grpc_generator::File* file,
  6. std::vector<TString> headers(headers_strs, array_end(headers_strs));
  7. PrintIncludes(printer.get(), headers, params.use_system_headers,
  8. params.grpc_search_path);
  9. + // port_def.inc must be included after all other includes.
  10. + std::vector<TString> wrapHeadersTop = {"google/protobuf/port_def.inc"};
  11. + PrintIncludes(printer.get(), wrapHeadersTop, params.use_system_headers, "");
  12. printer->Print(vars, "\n");
  13. vars["message_header_ext"] = params.message_header_extension.empty()
  14. @@ -1778,7 +1781,7 @@ TString GetHeaderServices(grpc_generator::File* file,
  15. }
  16. TString GetHeaderEpilogue(grpc_generator::File* file,
  17. - const Parameters& /*params*/) {
  18. + const Parameters& params) {
  19. TString output;
  20. {
  21. // Scope the output stream so it closes and finalizes output to the string.
  22. @@ -1799,6 +1802,8 @@ TString GetHeaderEpilogue(grpc_generator::File* file,
  23. }
  24. printer->Print(vars, "\n");
  25. + std::vector<TString> wrapHeadersBottom = {"google/protobuf/port_undef.inc"};
  26. + PrintIncludes(printer.get(), wrapHeadersBottom, params.use_system_headers, "");
  27. printer->Print(vars, "#endif // GRPC_$filename_identifier$__INCLUDED\n");
  28. printer->Print(file->GetTrailingComments("//").c_str());
  29. @@ -1858,6 +1863,9 @@ TString GetSourceIncludes(grpc_generator::File* file,
  30. std::vector<TString> headers(headers_strs, array_end(headers_strs));
  31. PrintIncludes(printer.get(), headers, params.use_system_headers,
  32. params.grpc_search_path);
  33. + // port_def.inc must be included after all other includes.
  34. + std::vector<TString> wrapHeadersTop = {"google/protobuf/port_def.inc"};
  35. + PrintIncludes(printer.get(), wrapHeadersTop, params.use_system_headers, "");
  36. if (!file->package().empty()) {
  37. std::vector<TString> parts = file->package_parts();
  38. --- a/src/compiler/cpp_generator.cc
  39. +++ b/src/compiler/cpp_generator.cc
  40. @@ -2323,7 +2323,7 @@ TString GetSourceServices(grpc_generator::File* file,
  41. }
  42. TString GetSourceEpilogue(grpc_generator::File* file,
  43. - const Parameters& /*params*/) {
  44. + const Parameters& params) {
  45. TString temp;
  46. if (!file->package().empty()) {
  47. @@ -2336,6 +2336,8 @@ TString GetSourceEpilogue(grpc_generator::File* file,
  48. }
  49. temp.append("\n");
  50. }
  51. + std::vector<TString> wrapHeadersBottom = {"google/protobuf/port_undef.inc"};
  52. + PrintIncludes(file->CreatePrinter(&temp).get(), wrapHeadersBottom, params.use_system_headers, "");
  53. return temp;
  54. }