From f678b5d4d6cf566f04f0496bbb0d30efe7d5b479 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Tue, 8 Oct 2019 13:18:59 +0300 Subject: [PATCH] - fixed crash on closing fatal error window Framebuffer was accessed after its destruction --- src/d_main.cpp | 2 +- src/rendering/v_video.h | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/d_main.cpp b/src/d_main.cpp index 0d0e7ef0c..d4003fbd2 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -2880,7 +2880,7 @@ void D_Cleanup() M_SaveDefaults(NULL); // save config before the restart // delete all data that cannot be left until reinitialization - screen->CleanForRestart(); + if (screen) screen->CleanForRestart(); V_ClearFonts(); // must clear global font pointers ColorSets.Clear(); PainFlashes.Clear(); diff --git a/src/rendering/v_video.h b/src/rendering/v_video.h index b6d6ab849..8235a0f64 100644 --- a/src/rendering/v_video.h +++ b/src/rendering/v_video.h @@ -663,9 +663,13 @@ public: savedyfac = CleanYfac; savedwidth = CleanWidth; savedheight = CleanHeight; - V_CalcCleanFacs(320, 200, screen->GetWidth(), screen->GetHeight(), &CleanXfac, &CleanYfac); - CleanWidth = screen->GetWidth() / CleanXfac; - CleanHeight = screen->GetHeight() / CleanYfac; + + if (screen) + { + V_CalcCleanFacs(320, 200, screen->GetWidth(), screen->GetHeight(), &CleanXfac, &CleanYfac); + CleanWidth = screen->GetWidth() / CleanXfac; + CleanHeight = screen->GetHeight() / CleanYfac; + } } ~ScaleOverrider()