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",
"headers": "calibre/utils/cpp_binding.h",
"sources": "calibre/db/sqlite_extension.cpp",
"needs_c++11": true,
"needs_c++14": true,
"libraries": "icudata icui18n icuuc icuio stemmer",
"windows_libraries": "icudt icuin icuuc icuio libstemmer",
"lib_dirs": "!icu_lib_dirs",

View File

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