diff options
Diffstat (limited to 'src/google')
-rw-r--r-- | src/google/protobuf/stubs/once.cc | 6 | ||||
-rw-r--r-- | src/google/protobuf/stubs/once.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/google/protobuf/stubs/once.cc b/src/google/protobuf/stubs/once.cc index b47a031c..3c53bcd7 100644 --- a/src/google/protobuf/stubs/once.cc +++ b/src/google/protobuf/stubs/once.cc @@ -56,6 +56,12 @@ struct GoogleOnceInternal { CRITICAL_SECTION critical_section; }; +GoogleOnceType::~GoogleOnceType() +{ + delete internal_; + internal_ = NULL; +} + GoogleOnceType::GoogleOnceType() { // internal_ may be non-NULL if Init() was already called. if (internal_ == NULL) internal_ = new GoogleOnceInternal; diff --git a/src/google/protobuf/stubs/once.h b/src/google/protobuf/stubs/once.h index 61c5f362..22b0d4e6 100644 --- a/src/google/protobuf/stubs/once.h +++ b/src/google/protobuf/stubs/once.h @@ -87,6 +87,7 @@ struct GoogleOnceInternal; struct LIBPROTOBUF_EXPORT GoogleOnceType { GoogleOnceType(); + ~GoogleOnceType(); void Init(void (*init_func)()); volatile bool initialized_; |