Browse Source

Merge pull request #458 from xfxyjwf/memory_leak

Delete default UnknownFieldSet when shuting down.
Paul Yang 10 years ago
parent
commit
eb162dad5f
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/google/protobuf/unknown_field_set.cc

+ 5 - 0
src/google/protobuf/unknown_field_set.cc

@@ -50,8 +50,13 @@ namespace {
 // instantiate the UnknownFieldSet dynamically only when required.
 UnknownFieldSet* default_unknown_field_set_instance_ = NULL;
 
+void DeleteDefaultUnknownFieldSet() {
+  delete default_unknown_field_set_instance_;
+}
+
 void InitDefaultUnknownFieldSet() {
   default_unknown_field_set_instance_ = new UnknownFieldSet();
+  internal::OnShutdown(&DeleteDefaultUnknownFieldSet);
 }
 
 GOOGLE_PROTOBUF_DECLARE_ONCE(default_unknown_field_set_once_init_);