Use std::make_unique for cleaner code

This commit is contained in:
Kovid Goyal 2021-06-23 13:53:18 +05:30
parent e520c70025
commit ea522df226
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 4 additions and 4 deletions

View File

@ -75,7 +75,7 @@
"name": "sqlite_extension", "name": "sqlite_extension",
"headers": "calibre/utils/cpp_binding.h", "headers": "calibre/utils/cpp_binding.h",
"sources": "calibre/db/sqlite_extension.cpp", "sources": "calibre/db/sqlite_extension.cpp",
"needs_c++11": true, "needs_c++14": true,
"libraries": "icudata icui18n icuuc icuio stemmer", "libraries": "icudata icui18n icuuc icuio stemmer",
"windows_libraries": "icudt icuin icuuc icuio libstemmer", "windows_libraries": "icudt icuin icuuc icuio libstemmer",
"lib_dirs": "!icu_lib_dirs", "lib_dirs": "!icu_lib_dirs",

View File

@ -246,8 +246,7 @@ private:
if (!lang[0]) lang = current_ui_language.c_str(); if (!lang[0]) lang = current_ui_language.c_str();
auto ans = stemmers.find(lang); auto ans = stemmers.find(lang);
if (ans == stemmers.end()) { if (ans == stemmers.end()) {
if (stem_words) stemmers[lang] = StemmerPtr(new Stemmer(lang)); stemmers[lang] = stem_words ? std::make_unique<Stemmer>(lang) : std::make_unique<Stemmer>();
else stemmers[lang] = StemmerPtr(new Stemmer());
ans = stemmers.find(lang); ans = stemmers.find(lang);
} }
return ans->second; return ans->second;
@ -375,10 +374,11 @@ _tok_create(void *sqlite3, const char **azArg, int nArg, Fts5Tokenizer **ppOut,
int rc = SQLITE_OK; int rc = SQLITE_OK;
try { try {
Tokenizer *p = new Tokenizer(azArg, nArg, stem_words); Tokenizer *p = new Tokenizer(azArg, nArg, stem_words);
*ppOut = reinterpret_cast<Fts5Tokenizer *>(p);
if (p->constructor_error != SQLITE_OK) { if (p->constructor_error != SQLITE_OK) {
rc = p->constructor_error; rc = p->constructor_error;
delete p; delete p;
} else {
*ppOut = reinterpret_cast<Fts5Tokenizer *>(p);
} }
} catch (std::bad_alloc const&) { } catch (std::bad_alloc const&) {
return SQLITE_NOMEM; return SQLITE_NOMEM;