diff options
| author | Neil <nyamatongwe@gmail.com> | 2018-03-01 09:55:25 +1100 |
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2018-03-01 09:55:25 +1100 |
| commit | 69f3505ba3066c23024dc6bb6878a339474581bf (patch) | |
| tree | d1c11379b0b7bac940ba06c749a629703980c292 /src/ExternalLexer.cxx | |
| parent | 3ed7408fb4c322183249afc7f0fce3b9f5de1cf1 (diff) | |
| download | scintilla-mirror-69f3505ba3066c23024dc6bb6878a339474581bf.tar.gz | |
Use make_unique in preference to new.
From Effective Modern C++ Item 21.
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() { |
