Index: third_party/protobuf/src/google/protobuf/generated_message_util.cc |
diff --git a/third_party/protobuf/src/google/protobuf/generated_message_util.cc b/third_party/protobuf/src/google/protobuf/generated_message_util.cc |
index 334051a013e4098afea6eed399a54caae30ac729..683a9d5c738c7c81ce9d2d03dc284844d773ed89 100644 |
--- a/third_party/protobuf/src/google/protobuf/generated_message_util.cc |
+++ b/third_party/protobuf/src/google/protobuf/generated_message_util.cc |
@@ -48,15 +48,13 @@ double NaN() { |
return std::numeric_limits<double>::quiet_NaN(); |
} |
-const ::std::string* empty_string_; |
+ExplicitlyConstructed< ::std::string> fixed_address_empty_string; |
GOOGLE_PROTOBUF_DECLARE_ONCE(empty_string_once_init_); |
-void DeleteEmptyString() { |
- delete empty_string_; |
-} |
+void DeleteEmptyString() { fixed_address_empty_string.Shutdown(); } |
void InitEmptyString() { |
- empty_string_ = new string; |
+ fixed_address_empty_string.DefaultConstruct(); |
OnShutdown(&DeleteEmptyString); |
} |
@@ -79,6 +77,10 @@ int StringSpaceUsedExcludingSelf(const string& str) { |
+void InitProtobufDefaults() { |
+ GetEmptyString(); |
+} |
+ |
} // namespace internal |
} // namespace protobuf |
} // namespace google |