From 7562c5751c5c004db81ac32949b1a92232f0f2e0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 18 Dec 2015 09:17:12 +0100 Subject: db/Configured: allocate ConfigBlock on the stack --- src/db/Configured.cxx | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'src/db/Configured.cxx') 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; } -- cgit v1.2.3