diff --git a/src/core/common/video/RenderBase.hpp b/src/core/common/video/RenderBase.hpp index a1428adbc..1a2485a14 100644 --- a/src/core/common/video/RenderBase.hpp +++ b/src/core/common/video/RenderBase.hpp @@ -31,7 +31,9 @@ public: } void DeviceRelease() { - m_device_release(); + if (m_device_release) { + m_device_release(); + } } void SetWindowRelease(const std::function& func_register) { @@ -39,7 +41,9 @@ public: } void WindowRelease() { - m_window_release(); + if (m_window_release) { + m_window_release(); + } } protected: diff --git a/src/core/kernel/init/CxbxKrnl.cpp b/src/core/kernel/init/CxbxKrnl.cpp index dc63a90ac..72fcd012e 100644 --- a/src/core/kernel/init/CxbxKrnl.cpp +++ b/src/core/kernel/init/CxbxKrnl.cpp @@ -1783,9 +1783,10 @@ void CxbxKrnlShutDown(bool is_reboot) g_VMManager.Shutdown(); // Shutdown the render manager - g_renderbase->Shutdown(); - g_renderbase.release(); - g_renderbase = nullptr; + if (g_renderbase != nullptr) { + g_renderbase->Shutdown(); + g_renderbase = nullptr; + } CxbxUnlockFilePath();