summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/db/Configured.cxx28
1 files changed, 10 insertions, 18 deletions
diff --git a/src/db/Configured.cxx b/src/db/Configured.cxx
index c71195769..8f0039fd1 100644
--- a/src/db/Configured.cxx
+++ b/src/db/Configured.cxx
@@ -43,16 +43,13 @@ CreateConfiguredDatabase(EventLoop &loop, DatabaseListener &listener,
return nullptr;
}
- ConfigBlock *allocated = nullptr;
-
- if (param == nullptr && path != nullptr) {
- allocated = new ConfigBlock(path->line);
- allocated->AddBlockParam("path", path->value.c_str(),
- path->line);
- param = allocated;
- }
-
- if (param == nullptr) {
+ if (param != nullptr)
+ return DatabaseGlobalInit(loop, listener, *param, error);
+ else if (path != nullptr) {
+ ConfigBlock block(path->line);
+ block.AddBlockParam("path", path->value.c_str(), path->line);
+ return DatabaseGlobalInit(loop, listener, block, error);
+ } else {
/* if there is no override, use the cache directory */
const AllocatedPath cache_dir = GetUserCacheDir();
@@ -65,13 +62,8 @@ CreateConfiguredDatabase(EventLoop &loop, DatabaseListener &listener,
if (db_file_utf8.empty())
return nullptr;
- allocated = new ConfigBlock();
- allocated->AddBlockParam("path", db_file_utf8.c_str(), -1);
- param = allocated;
+ ConfigBlock block;
+ block.AddBlockParam("path", db_file_utf8.c_str(), -1);
+ return DatabaseGlobalInit(loop, listener, block, error);
}
-
- Database *db = DatabaseGlobalInit(loop, listener, *param,
- error);
- delete allocated;
- return db;
}