fix: only use IApplication::instance instead of Application::instance (#5540)
This commit is contained in:
+20
-9
@@ -124,18 +124,23 @@ SeventvEventAPI *makeSeventvEventAPI(Settings &settings)
|
||||
|
||||
const QString TWITCH_PUBSUB_URL = "wss://pubsub-edge.twitch.tv";
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
|
||||
IApplication *INSTANCE = nullptr;
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace chatterino {
|
||||
|
||||
static std::atomic<bool> isAppInitialized{false};
|
||||
|
||||
Application *Application::instance = nullptr;
|
||||
IApplication *IApplication::instance = nullptr;
|
||||
|
||||
IApplication::IApplication()
|
||||
{
|
||||
IApplication::instance = this;
|
||||
INSTANCE = this;
|
||||
}
|
||||
|
||||
IApplication::~IApplication()
|
||||
{
|
||||
INSTANCE = nullptr;
|
||||
}
|
||||
|
||||
// this class is responsible for handling the workflow of Chatterino
|
||||
@@ -182,8 +187,6 @@ Application::Application(Settings &_settings, const Paths &paths,
|
||||
#endif
|
||||
, updates(_updates)
|
||||
{
|
||||
Application::instance = this;
|
||||
|
||||
// We can safely ignore this signal's connection since the Application will always
|
||||
// be destroyed after fonts
|
||||
std::ignore = this->fonts->fontChanged.connect([this]() {
|
||||
@@ -193,7 +196,8 @@ Application::Application(Settings &_settings, const Paths &paths,
|
||||
|
||||
Application::~Application()
|
||||
{
|
||||
Application::instance = nullptr;
|
||||
// we do this early to ensure getApp isn't used in any dtors
|
||||
INSTANCE = nullptr;
|
||||
}
|
||||
|
||||
void Application::initialize(Settings &settings, const Paths &paths)
|
||||
@@ -528,6 +532,13 @@ PluginController *Application::getPlugins()
|
||||
}
|
||||
#endif
|
||||
|
||||
Updates &Application::getUpdates()
|
||||
{
|
||||
assertInGuiThread();
|
||||
|
||||
return this->updates;
|
||||
}
|
||||
|
||||
ITwitchIrcServer *Application::getTwitch()
|
||||
{
|
||||
assertInGuiThread();
|
||||
@@ -1180,9 +1191,9 @@ void Application::initSeventvEventAPI()
|
||||
|
||||
IApplication *getApp()
|
||||
{
|
||||
assert(IApplication::instance != nullptr);
|
||||
assert(INSTANCE != nullptr);
|
||||
|
||||
return IApplication::instance;
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
Reference in New Issue
Block a user