aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/extension_set.cc
diff options
context:
space:
mode:
authorGravatar Antoni Buszta <antoni@buszta.info>2014-10-08 11:21:04 +0200
committerGravatar Antoni Buszta <antoni@buszta.info>2014-10-08 11:27:18 +0200
commite83ba13a6fbb54f472ec16d486c6e3d4bbdf3adb (patch)
tree76e24e32e789ba6c7900ee30827f357dd52497c3 /src/google/protobuf/extension_set.cc
parent0971bb0d57aa6f2db1abee4008b365d52b402891 (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.cc15
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