aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/message.cc
diff options
context:
space:
mode:
authorGravatar Adam Cozzette <acozzette@gmail.com>2018-07-09 09:35:48 -0700
committerGravatar GitHub <noreply@github.com>2018-07-09 09:35:48 -0700
commite1845779ed1115dd61eb2a3b8f0a78c252ca5b2b (patch)
treefdb892e4e34269f6b3bbb6f629a912d4c63c2d70 /src/google/protobuf/message.cc
parentf7ada1280fac4af717d478e6a9765d3f02b418b3 (diff)
parenta9abc7831e45257d334cfa682746b6cadf9e95d9 (diff)
Merge pull request #4878 from acozzette/fix-msvc-initialization
Fix initialization with Visual Studio
Diffstat (limited to 'src/google/protobuf/message.cc')
-rw-r--r--src/google/protobuf/message.cc23
1 files changed, 2 insertions, 21 deletions
diff --git a/src/google/protobuf/message.cc b/src/google/protobuf/message.cc
index 810db233..9b758080 100644
--- a/src/google/protobuf/message.cc
+++ b/src/google/protobuf/message.cc
@@ -262,9 +262,6 @@ namespace {
class GeneratedMessageFactory : public MessageFactory {
public:
- GeneratedMessageFactory();
- ~GeneratedMessageFactory();
-
static GeneratedMessageFactory* singleton();
typedef void RegistrationFunc(const string&);
@@ -284,25 +281,9 @@ class GeneratedMessageFactory : public MessageFactory {
hash_map<const Descriptor*, const Message*> type_map_;
};
-GeneratedMessageFactory* generated_message_factory_ = NULL;
-GOOGLE_PROTOBUF_DECLARE_ONCE(generated_message_factory_once_init_);
-
-void ShutdownGeneratedMessageFactory() {
- delete generated_message_factory_;
-}
-
-void InitGeneratedMessageFactory() {
- generated_message_factory_ = new GeneratedMessageFactory;
- internal::OnShutdown(&ShutdownGeneratedMessageFactory);
-}
-
-GeneratedMessageFactory::GeneratedMessageFactory() {}
-GeneratedMessageFactory::~GeneratedMessageFactory() {}
-
GeneratedMessageFactory* GeneratedMessageFactory::singleton() {
- ::google::protobuf::GoogleOnceInit(&generated_message_factory_once_init_,
- &InitGeneratedMessageFactory);
- return generated_message_factory_;
+ static auto instance = internal::OnShutdownDelete(new GeneratedMessageFactory);
+ return instance;
}
void GeneratedMessageFactory::RegisterFile(