Skip to content

Commit c709a34

Browse files
Merge pull request #14800 from mkruskal-google/leak-patch
Register a shutdown deleter for C++ feature defaults
2 parents c529459 + 3d5c709 commit c709a34

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/google/protobuf/descriptor.cc

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1092,14 +1092,16 @@ bool AllowedExtendeeInProto3(const std::string& name) {
10921092
}
10931093

10941094
const FeatureSetDefaults& GetCppFeatureSetDefaults() {
1095-
static const FeatureSetDefaults* default_spec = [] {
1096-
auto* defaults = new FeatureSetDefaults();
1097-
internal::ParseNoReflection(
1098-
absl::string_view{PROTOBUF_INTERNAL_CPP_EDITION_DEFAULTS,
1099-
sizeof(PROTOBUF_INTERNAL_CPP_EDITION_DEFAULTS) - 1},
1100-
*defaults);
1101-
return defaults;
1102-
}();
1095+
static const FeatureSetDefaults* default_spec =
1096+
internal::OnShutdownDelete([] {
1097+
auto* defaults = new FeatureSetDefaults();
1098+
internal::ParseNoReflection(
1099+
absl::string_view{
1100+
PROTOBUF_INTERNAL_CPP_EDITION_DEFAULTS,
1101+
sizeof(PROTOBUF_INTERNAL_CPP_EDITION_DEFAULTS) - 1},
1102+
*defaults);
1103+
return defaults;
1104+
}());
11031105
return *default_spec;
11041106
}
11051107

0 commit comments

Comments
 (0)