diff --git a/src/ResourceManager.h b/src/ResourceManager.h index a8ad00d9b..b00732199 100644 --- a/src/ResourceManager.h +++ b/src/ResourceManager.h @@ -452,7 +452,10 @@ cube->draw(); template class ResourceManager: protected Implementation::ResourceManagerData... { public: /** @brief Global instance */ - inline static ResourceManager* instance() { return _instance; } + inline static ResourceManager* instance() { + CORRADE_ASSERT(_instance, "ResourceManager::instance(): no instance exists", nullptr); + return _instance; + } /** * @brief Constructor @@ -463,7 +466,7 @@ template class ResourceManager: protected Implementation::Resour * @see instance() */ inline ResourceManager() { - CORRADE_ASSERT(!_instance, "ResourceManager: another instance is already created!", ); + CORRADE_ASSERT(!_instance, "ResourceManager::ResourceManager(): another instance is already created", ); _instance = this; } @@ -473,7 +476,10 @@ template class ResourceManager: protected Implementation::Resour * Sets global instance pointer to `nullptr`. * @see instance() */ - inline ~ResourceManager() { _instance = nullptr; } + inline ~ResourceManager() { + CORRADE_INTERNAL_ASSERT(_instance == this); + _instance = nullptr; + } /** @brief Count of resources of given type */ template inline std::size_t count() {