From ebdb8d3576b02e26586260150fd7c83678c7409b Mon Sep 17 00:00:00 2001 From: iProgramInCpp Date: Fri, 3 Nov 2023 18:27:13 +0200 Subject: [PATCH] * Fix use after free in ProgressScreen --- source/client/gui/screens/ProgressScreen.cpp | 17 +++++++++++------ source/client/gui/screens/ProgressScreen.hpp | 1 + 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/source/client/gui/screens/ProgressScreen.cpp b/source/client/gui/screens/ProgressScreen.cpp index 9dc3356..64e3def 100644 --- a/source/client/gui/screens/ProgressScreen.cpp +++ b/source/client/gui/screens/ProgressScreen.cpp @@ -15,12 +15,6 @@ bool ProgressScreen::isInGameScreen() void ProgressScreen::render(int a, int b, float c) { - if (m_pMinecraft->isLevelGenerated()) - { - m_pMinecraft->setScreen(nullptr); - return; - } - renderBackground(); // render the dirt background @@ -84,3 +78,14 @@ void ProgressScreen::render(int a, int b, float c) sleepMs(50); #endif } + +void ProgressScreen::updateEvents() +{ + if (m_pMinecraft->isLevelGenerated()) + { + m_pMinecraft->setScreen(nullptr); + return; + } + + Screen::updateEvents(); +} diff --git a/source/client/gui/screens/ProgressScreen.hpp b/source/client/gui/screens/ProgressScreen.hpp index 457298f..a76625c 100644 --- a/source/client/gui/screens/ProgressScreen.hpp +++ b/source/client/gui/screens/ProgressScreen.hpp @@ -14,6 +14,7 @@ class ProgressScreen : public Screen { public: void render(int, int, float) override; + void updateEvents() override; bool isInGameScreen() override; };