From 1f206421e83274a1981a2407cade6e7f286e178f Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Fri, 14 May 2021 13:26:06 +1000 Subject: [PATCH] CommonHostInterface: Prevent crash with fullscreen UI enabled --- src/frontend-common/common_host_interface.cpp | 3 ++- src/frontend-common/fullscreen_ui.cpp | 5 +++++ src/frontend-common/fullscreen_ui.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index 27786a043..2c5c83868 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -2702,7 +2702,8 @@ void CommonHostInterface::LoadSettings(SettingsInterface& si) } else if (m_fullscreen_ui_enabled) { - FullscreenUI::UpdateSettings(); + if (FullscreenUI::IsInitialized()) + FullscreenUI::UpdateSettings(); } const bool input_display_enabled = si.GetBoolValue("Display", "ShowInputs", false); diff --git a/src/frontend-common/fullscreen_ui.cpp b/src/frontend-common/fullscreen_ui.cpp index 387498460..158968a0c 100644 --- a/src/frontend-common/fullscreen_ui.cpp +++ b/src/frontend-common/fullscreen_ui.cpp @@ -231,6 +231,11 @@ bool Initialize(CommonHostInterface* host_interface) return true; } +bool IsInitialized() +{ + return (s_host_interface != nullptr); +} + bool HasActiveWindow() { return s_current_main_window != MainWindowType::None || s_save_state_selector_open || diff --git a/src/frontend-common/fullscreen_ui.h b/src/frontend-common/fullscreen_ui.h index 5b58da80c..7b6ec4269 100644 --- a/src/frontend-common/fullscreen_ui.h +++ b/src/frontend-common/fullscreen_ui.h @@ -40,6 +40,7 @@ enum class SettingsPage }; bool Initialize(CommonHostInterface* host_interface); +bool IsInitialized(); bool HasActiveWindow(); void UpdateSettings(); void SystemCreated();