Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / protobuf / src / google / protobuf / generated_message_util.h
index b2fb8f0..098f321 100644 (file)
@@ -41,6 +41,7 @@
 #include <string>
 
 #include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
 namespace google {
 namespace protobuf {
 namespace internal {
@@ -59,8 +60,17 @@ namespace internal {
 LIBPROTOBUF_EXPORT double Infinity();
 LIBPROTOBUF_EXPORT double NaN();
 
-// Constant used for empty default strings.
-LIBPROTOBUF_EXPORT extern const ::std::string kEmptyString;
+// Default empty string object. Don't use the pointer directly. Instead, call
+// GetEmptyString() to get the reference.
+LIBPROTOBUF_EXPORT extern const ::std::string* empty_string_;
+LIBPROTOBUF_EXPORT extern ProtobufOnceType empty_string_once_init_;
+
+LIBPROTOBUF_EXPORT void InitEmptyString();
+
+LIBPROTOBUF_EXPORT inline const ::std::string& GetEmptyString() {
+  GoogleOnceInit(&empty_string_once_init_, &InitEmptyString);
+  return *empty_string_;
+}
 
 // Defined in generated_message_reflection.cc -- not actually part of the lite
 // library.