From 69f3505ba3066c23024dc6bb6878a339474581bf Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 1 Mar 2018 09:55:25 +1100 Subject: Use make_unique in preference to new. From Effective Modern C++ Item 21. --- src/ExternalLexer.cxx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/ExternalLexer.cxx') 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(lib)); + libraries.push_back(std::make_unique(path)); } void LexerManager::Clear() { -- cgit v1.2.3