diff --git a/src/Instance.cxx b/src/Instance.cxx index f1beeeff6..a66244f5b 100644 --- a/src/Instance.cxx +++ b/src/Instance.cxx @@ -30,6 +30,8 @@ #ifdef ENABLE_DATABASE #include "db/DatabaseError.hxx" +#include "db/Interface.hxx" +#include "storage/StorageInterface.hxx" #ifdef ENABLE_SQLITE #include "sticker/StickerDatabase.hxx" @@ -48,7 +50,17 @@ Instance::Instance() { } -Instance::~Instance() noexcept = default; +Instance::~Instance() noexcept +{ +#ifdef ENABLE_DATABASE + if (database != nullptr) { + database->Close(); + delete database; + } + + delete storage; +#endif +} Partition * Instance::FindPartition(const char *name) noexcept diff --git a/src/Instance.hxx b/src/Instance.hxx index 48e5a2f79..996ca7475 100644 --- a/src/Instance.hxx +++ b/src/Instance.hxx @@ -168,7 +168,6 @@ struct Instance final void BeginShutdownUpdate() noexcept; void FinishShutdownUpdate() noexcept; - void ShutdownDatabase() noexcept; #ifdef ENABLE_CURL void LookupRemoteTag(const char *uri) noexcept; diff --git a/src/Main.cxx b/src/Main.cxx index e5046a7ad..c2d96847c 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -359,19 +359,6 @@ Instance::FinishShutdownUpdate() noexcept #endif } -inline void -Instance::ShutdownDatabase() noexcept -{ -#ifdef ENABLE_DATABASE - if (instance->database != nullptr) { - instance->database->Close(); - delete instance->database; - } - - delete instance->storage; -#endif -} - inline void Instance::BeginShutdownPartitions() noexcept { @@ -648,7 +635,6 @@ mpd_main_after_fork(const ConfigData &raw_config, const Config &config) #endif instance->FinishShutdownUpdate(); - instance->ShutdownDatabase(); #ifdef ENABLE_SQLITE sticker_global_finish();