diff options
author | Antoni Buszta <antoni@buszta.info> | 2014-10-08 11:21:04 +0200 |
---|---|---|
committer | Antoni Buszta <antoni@buszta.info> | 2014-10-08 11:27:18 +0200 |
commit | e83ba13a6fbb54f472ec16d486c6e3d4bbdf3adb (patch) | |
tree | 76e24e32e789ba6c7900ee30827f357dd52497c3 /src/google/protobuf/extension_set.cc | |
parent | 0971bb0d57aa6f2db1abee4008b365d52b402891 (diff) |
InitializeDefaultRepeatedFields() allocates memory but does not release it.
Diffstat (limited to 'src/google/protobuf/extension_set.cc')
-rw-r--r-- | src/google/protobuf/extension_set.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/google/protobuf/extension_set.cc b/src/google/protobuf/extension_set.cc index 1b9ec36c..f4786392 100644 --- a/src/google/protobuf/extension_set.cc +++ b/src/google/protobuf/extension_set.cc @@ -1622,6 +1622,9 @@ struct StaticDefaultRepeatedFieldsInitializer { StaticDefaultRepeatedFieldsInitializer() { InitializeDefaultRepeatedFields(); } + ~StaticDefaultRepeatedFieldsInitializer() { + DestroyDefaultRepeatedFields(); + } } static_repeated_fields_initializer; void InitializeDefaultRepeatedFields() { @@ -1645,6 +1648,18 @@ void InitializeDefaultRepeatedFields() { new RepeatedField<bool>; } +void DestroyDefaultRepeatedFields() { + delete RepeatedStringTypeTraits::default_repeated_field_; + delete RepeatedMessageGenericTypeTraits::default_repeated_field_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_int32_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_int64_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_uint32_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_uint64_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_double_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_float_; + delete RepeatedPrimitiveGenericTypeTraits::default_repeated_field_bool_; +} + } // namespace internal } // namespace protobuf } // namespace google |