From 855fc9a31c0fed65566ec35af5320fa0a597876f Mon Sep 17 00:00:00 2001 From: Albert Liu <45282415+ggrtk@users.noreply.github.com> Date: Tue, 21 Jul 2020 17:14:11 -0700 Subject: [PATCH] CommonHostInterface: Prevent some potential null pointer dereferences --- src/duckstation-qt/qthostinterface.cpp | 3 +++ src/frontend-common/common_host_interface.cpp | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp index 1778008a1..71efd6693 100644 --- a/src/duckstation-qt/qthostinterface.cpp +++ b/src/duckstation-qt/qthostinterface.cpp @@ -484,6 +484,9 @@ void QtHostInterface::connectDisplaySignals(QtDisplayWidget* widget) void QtHostInterface::updateDisplayState() { + if (!m_display) + return; + // this expects the context to get moved back to us afterwards m_display->DoneRenderContextCurrent(); diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index dfb71437b..7d4161cb0 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -551,13 +551,16 @@ bool CommonHostInterface::ResumeSystemFromMostRecentState() void CommonHostInterface::UpdateSpeedLimiterState() { + if (!m_system || !m_audio_stream || !m_display) + return; + m_speed_limiter_enabled = m_settings.speed_limiter_enabled && !m_speed_limiter_temp_disabled; const bool is_non_standard_speed = (std::abs(m_settings.emulation_speed - 1.0f) > 0.05f); const bool audio_sync_enabled = - !m_system || m_paused || (m_speed_limiter_enabled && m_settings.audio_sync_enabled && !is_non_standard_speed); + m_paused || (m_speed_limiter_enabled && m_settings.audio_sync_enabled && !is_non_standard_speed); const bool video_sync_enabled = - !m_system || m_paused || (m_speed_limiter_enabled && m_settings.video_sync_enabled && !is_non_standard_speed); + m_paused || (m_speed_limiter_enabled && m_settings.video_sync_enabled && !is_non_standard_speed); Log_InfoPrintf("Syncing to %s%s", audio_sync_enabled ? "audio" : "", (audio_sync_enabled && video_sync_enabled) ? " and video" : (video_sync_enabled ? "video" : ""));