| Index: third_party/protobuf/patches/0010-uninline-generated-code.patch
|
| diff --git a/third_party/protobuf/patches/0010-uninline-generated-code.patch b/third_party/protobuf/patches/0010-uninline-generated-code.patch
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..513d3a584e4a44763865b11c717049d37f418ac6
|
| --- /dev/null
|
| +++ b/third_party/protobuf/patches/0010-uninline-generated-code.patch
|
| @@ -0,0 +1,43 @@
|
| +unchanged:
|
| +--- protobuf-cleaned/src/google/protobuf/compiler/cpp/cpp_file.cc 2015-12-30 13:21:46.000000000 -0800
|
| ++++ protobuf-patched/src/google/protobuf/compiler/cpp/cpp_file.cc 2016-03-31 13:25:40.252007316 -0700
|
| +@@ -337,7 +337,7 @@
|
| + "namespace {\n"
|
| + "\n"
|
| + "static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;\n"
|
| +- "static void MergeFromFail(int line) {\n"
|
| ++ "GOOGLE_ATTRIBUTE_NOINLINE static void MergeFromFail(int line) {\n"
|
| + " GOOGLE_CHECK(false) << __FILE__ << \":\" << line;\n"
|
| + "}\n"
|
| + "\n"
|
| +only in patch2:
|
| +unchanged:
|
| +--- protobuf-cleaned/src/google/protobuf/compiler/cpp/cpp_message.cc 2015-12-30 13:21:46.000000000 -0800
|
| ++++ protobuf-patched/src/google/protobuf/compiler/cpp/cpp_message.cc 2016-03-31 13:25:40.888006485 -0700
|
| +@@ -1035,7 +1035,7 @@
|
| + }
|
| +
|
| + printer->Print(vars,
|
| +- "void Swap($classname$* other);\n"
|
| ++ "GOOGLE_ATTRIBUTE_NOINLINE void Swap($classname$* other);\n"
|
| + "\n"
|
| + "// implements Message ----------------------------------------------\n"
|
| + "\n"
|
| +@@ -1927,7 +1927,7 @@
|
| + void MessageGenerator::
|
| + GenerateSharedConstructorCode(io::Printer* printer) {
|
| + printer->Print(
|
| +- "void $classname$::SharedCtor() {\n",
|
| ++ "GOOGLE_ATTRIBUTE_NOINLINE void $classname$::SharedCtor() {\n",
|
| + "classname", classname_);
|
| + printer->Indent();
|
| +
|
| +@@ -2586,7 +2586,7 @@
|
| + // ownership situation: swapping across arenas or between an arena and a
|
| + // heap requires copying.
|
| + printer->Print(
|
| +- "void $classname$::Swap($classname$* other) {\n"
|
| ++ "GOOGLE_ATTRIBUTE_NOINLINE void $classname$::Swap($classname$* other) {\n"
|
| + " if (other == this) return;\n"
|
| + " if (GetArenaNoVirtual() == other->GetArenaNoVirtual()) {\n"
|
| + " InternalSwap(other);\n"
|
|
|