Settings: Remove ConfigChangedCallback on shutdown

This commit is contained in:
Dentomologist 2025-04-25 11:43:41 -07:00
parent 9c40a7976b
commit 8724daf44e
2 changed files with 7 additions and 2 deletions

View file

@ -59,7 +59,7 @@ Settings::Settings()
}); });
}); });
Config::AddConfigChangedCallback([this] { m_config_changed_callback_id = Config::AddConfigChangedCallback([this] {
static std::atomic<bool> do_once{true}; static std::atomic<bool> do_once{true};
if (do_once.exchange(false)) if (do_once.exchange(false))
{ {
@ -94,7 +94,10 @@ Settings::Settings()
}); });
} }
Settings::~Settings() = default; Settings::~Settings()
{
Config::RemoveConfigChangedCallback(m_config_changed_callback_id);
}
void Settings::UnregisterDevicesChangedCallback() void Settings::UnregisterDevicesChangedCallback()
{ {

View file

@ -10,6 +10,7 @@
#include <QRadioButton> #include <QRadioButton>
#include <QSettings> #include <QSettings>
#include "Common/Config/Config.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
#include "DiscIO/Enums.h" #include "DiscIO/Enums.h"
#include "InputCommon/ControllerInterface/ControllerInterface.h" #include "InputCommon/ControllerInterface/ControllerInterface.h"
@ -232,6 +233,7 @@ private:
std::shared_ptr<NetPlay::NetPlayClient> m_client; std::shared_ptr<NetPlay::NetPlayClient> m_client;
std::shared_ptr<NetPlay::NetPlayServer> m_server; std::shared_ptr<NetPlay::NetPlayServer> m_server;
ControllerInterface::HotplugCallbackHandle m_hotplug_callback_handle; ControllerInterface::HotplugCallbackHandle m_hotplug_callback_handle;
Config::ConfigChangedCallbackID m_config_changed_callback_id;
}; };
Q_DECLARE_METATYPE(Core::State); Q_DECLARE_METATYPE(Core::State);