aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google
diff options
context:
space:
mode:
authorGravatar kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-05-18 18:38:56 +0000
committerGravatar kenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-05-18 18:38:56 +0000
commitb43727981c460cf934f894a8ddb3819ffcf9a6fe (patch)
tree2122cf7ec760583815589b021be5074a9f25448f /src/google
parent1fb3d394e5bb4ded7a76dc8d44a701733aad3553 (diff)
Fix final leak (win32 only).
Diffstat (limited to 'src/google')
-rw-r--r--src/google/protobuf/stubs/once.cc6
-rw-r--r--src/google/protobuf/stubs/once.h1
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_;