Index: third_party/protobuf/patches/0009-uninline-arenastring.patch |
diff --git a/third_party/protobuf/patches/0009-uninline-arenastring.patch b/third_party/protobuf/patches/0009-uninline-arenastring.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ba6360b35c034df083b2a561b8d19eab61798e4 |
--- /dev/null |
+++ b/third_party/protobuf/patches/0009-uninline-arenastring.patch |
@@ -0,0 +1,59 @@ |
+unchanged: |
+--- protobuf-cleaned/src/google/protobuf/arenastring.cc 2015-12-30 13:21:46.000000000 -0800 |
++++ protobuf-patched/src/google/protobuf/arenastring.cc 2016-03-31 13:25:40.888006485 -0700 |
+@@ -48,6 +48,23 @@ |
+ } |
+ } |
+ |
++::std::string* ArenaStringPtr::MutableNoArena( |
++ const ::std::string* default_value) { |
++ if (ptr_ == default_value) { |
++ CreateInstanceNoArena(default_value); |
++ } |
++ return ptr_; |
++} |
++ |
++ |
++void ArenaStringPtr::DestroyNoArena(const ::std::string* default_value) { |
++ if (ptr_ != default_value) { |
++ delete ptr_; |
++ } |
++ ptr_ = NULL; |
++} |
++ |
++ |
+ } // namespace internal |
+ } // namespace protobuf |
+ } // namespace google |
+only in patch2: |
+unchanged: |
+--- protobuf-cleaned/src/google/protobuf/arenastring.h 2015-12-30 13:21:46.000000000 -0800 |
++++ protobuf-patched/src/google/protobuf/arenastring.h 2016-03-31 13:25:40.888006485 -0700 |
+@@ -219,12 +219,7 @@ |
+ return *ptr_; |
+ } |
+ |
+- inline ::std::string* MutableNoArena(const ::std::string* default_value) { |
+- if (ptr_ == default_value) { |
+- CreateInstanceNoArena(default_value); |
+- } |
+- return ptr_; |
+- } |
++ ::std::string* MutableNoArena(const ::std::string* default_value); |
+ |
+ inline ::std::string* ReleaseNoArena(const ::std::string* default_value) { |
+ if (ptr_ == default_value) { |
+@@ -248,12 +243,7 @@ |
+ } |
+ } |
+ |
+- inline void DestroyNoArena(const ::std::string* default_value) { |
+- if (ptr_ != default_value) { |
+- delete ptr_; |
+- } |
+- ptr_ = NULL; |
+- } |
++ void DestroyNoArena(const ::std::string* default_value); |
+ |
+ inline void ClearToEmptyNoArena(const ::std::string* default_value) { |
+ if (ptr_ == default_value) { |