From b43727981c460cf934f894a8ddb3819ffcf9a6fe Mon Sep 17 00:00:00 2001 From: "kenton@google.com" Date: Mon, 18 May 2009 18:38:56 +0000 Subject: Fix final leak (win32 only). --- src/google/protobuf/stubs/once.cc | 6 ++++++ src/google/protobuf/stubs/once.h | 1 + 2 files changed, 7 insertions(+) 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_; -- cgit v1.2.3