diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-08-24 01:32:38 -0400 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-08-24 01:32:38 -0400 |
commit | 84b4ac572954c3fbf114a877f00a12020d3b31f8 (patch) | |
tree | 4b257caf10eb6e7dfd2113671a7ebdcd845dcf3b /src/core | |
parent | bed0c3c92a6db45b29e787016fd21542606a031a (diff) |
logging: Fix log filter during initialization
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value.
This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/core.cpp | 10 | ||||
-rw-r--r-- | src/core/core.h | 7 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index b0dc594d4..5893a86bf 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -4,6 +4,7 @@ #include <array> #include <atomic> +#include <exception> #include <memory> #include <utility> @@ -423,9 +424,16 @@ struct System::Impl { System::System() : impl{std::make_unique<Impl>(*this)} {} System::~System() = default; +System& System::GetInstance() { + if (!s_instance) { + throw std::runtime_error("Using System instance before its initialization"); + } + return *s_instance; +} + void System::InitializeGlobalInstance() { if (s_instance) { - abort(); + throw std::runtime_error("Reinitializing Global System instance."); } s_instance = std::unique_ptr<System>(new System); } diff --git a/src/core/core.h b/src/core/core.h index 65b447a1c..f9116ebb6 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -120,12 +120,7 @@ public: * Gets the instance of the System singleton class. * @returns Reference to the instance of the System singleton class. */ - [[deprecated("Use of the global system instance is deprecated")]] static System& GetInstance() { - if (!s_instance) { - abort(); - } - return *s_instance; - } + [[deprecated("Use of the global system instance is deprecated")]] static System& GetInstance(); static void InitializeGlobalInstance(); |