diff options
Diffstat (limited to 'src/ExternalLexer.cxx')
-rw-r--r-- | src/ExternalLexer.cxx | 5 |
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() { |