Skip to content

Commit 7d4cea9

Browse files
Nick Noblesparrt
authored andcommitted
Fix singleton memory leaks
Signed-off-by: Nick Nobles <[email protected]>
1 parent 6197d6c commit 7d4cea9

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ATNDeserializationOptions::ATNDeserializationOptions(ATNDeserializationOptions *
1414
_generateRuleBypassTransitions(options->_generateRuleBypassTransitions) {}
1515

1616
const ATNDeserializationOptions& ATNDeserializationOptions::getDefaultOptions() {
17-
static const ATNDeserializationOptions* const defaultOptions = new ATNDeserializationOptions();
17+
static const std::unique_ptr<const ATNDeserializationOptions> defaultOptions = std::make_unique<const ATNDeserializationOptions>();
1818
return *defaultOptions;
1919
}
2020

tool/resources/org/antlr/v4/tool/templates/codegen/Cpp/Cpp.stg

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ struct <lexer.name; format = "cap">StaticData final {
147147
#if ANTLR4_USE_THREAD_LOCAL_CACHE
148148
static thread_local
149149
#endif
150-
<lexer.name; format = "cap">StaticData *<lexer.grammarName; format = "lower">LexerStaticData = nullptr;
150+
std::unique_ptr\<<lexer.name; format = "cap">StaticData> <lexer.grammarName; format = "lower">LexerStaticData = nullptr;
151151

152152
void <lexer.grammarName; format = "lower">LexerInitialize() {
153153
#if ANTLR4_USE_THREAD_LOCAL_CACHE
@@ -175,7 +175,7 @@ void <lexer.grammarName; format = "lower">LexerInitialize() {
175175
}
176176
);
177177
<atn>
178-
<lexer.grammarName; format = "lower">LexerStaticData = staticData.release();
178+
<lexer.grammarName; format = "lower">LexerStaticData = std::move(staticData);
179179
}
180180

181181
}
@@ -380,7 +380,7 @@ struct <parser.name; format = "cap">StaticData final {
380380
#if ANTLR4_USE_THREAD_LOCAL_CACHE
381381
static thread_local
382382
#endif
383-
<parser.name; format = "cap">StaticData *<parser.grammarName; format = "lower">ParserStaticData = nullptr;
383+
std::unique_ptr\<<parser.name; format = "cap">StaticData> <parser.grammarName; format = "lower">ParserStaticData = nullptr;
384384

385385
void <parser.grammarName; format = "lower">ParserInitialize() {
386386
#if ANTLR4_USE_THREAD_LOCAL_CACHE
@@ -402,7 +402,7 @@ void <parser.grammarName; format = "lower">ParserInitialize() {
402402
}
403403
);
404404
<atn>
405-
<parser.grammarName; format = "lower">ParserStaticData = staticData.release();
405+
<parser.grammarName; format = "lower">ParserStaticData = std::move(staticData);
406406
}
407407

408408
}

0 commit comments

Comments
 (0)