aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ExternalLexer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/ExternalLexer.cxx')
-rw-r--r--src/ExternalLexer.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/ExternalLexer.cxx b/src/ExternalLexer.cxx
index fdef2ad57..1ab96913a 100644
--- a/src/ExternalLexer.cxx
+++ b/src/ExternalLexer.cxx
@@ -65,6 +65,8 @@ LexerLibrary::LexerLibrary(const char *moduleName_) {
char lexname[100] = "";
GetLexerName(i, lexname, sizeof(lexname));
ExternalLexerModule *lex = new ExternalLexerModule(SCLEX_AUTOMATIC, NULL, lexname, NULL);
+ // This is storing a second reference to lex in the Catalogue as well as in modules.
+ // TODO: Should use std::shared_ptr or similar to ensure allocation safety.
Catalogue::AddLexerModule(lex);
// Remember ExternalLexerModule so we don't leak it
@@ -112,8 +114,7 @@ void LexerManager::Load(const char *path) {
if (ll->moduleName == path)
return;
}
- LexerLibrary *lib = new LexerLibrary(path);
- libraries.push_back(std::unique_ptr<LexerLibrary>(lib));
+ libraries.push_back(std::make_unique<LexerLibrary>(path));
}
void LexerManager::Clear() {