From e70a289b97bda0307bb7d5d2270ad66039984bf3 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Wed, 25 Jan 2017 15:00:05 +0100 Subject: [PATCH] [Console] Fix memory leak when shutting down the console --- src/Components/Modules/Console.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Components/Modules/Console.cpp b/src/Components/Modules/Console.cpp index ed1e5a0d..713658da 100644 --- a/src/Components/Modules/Console.cpp +++ b/src/Components/Modules/Console.cpp @@ -588,6 +588,19 @@ namespace Components Console::ConsoleThread = std::thread(Console::ConsoleRunner); }, HOOK_CALL).install()->quick(); + Utils::Hook(0x4D69A2, []() + { + Console::SetSkipShutdown(); + + // Sys_DestroyConsole + Utils::Hook::Call(0x4528A0)(); + + if (Console::ConsoleThread.joinable()) + { + Console::ConsoleThread.join(); + } + }, HOOK_CALL).install()->quick(); + QuickPatch::OnFrame([] () { Console::LastRefresh = Game::Sys_Milliseconds(); @@ -611,6 +624,7 @@ namespace Components Console::~Console() { + Console::SetSkipShutdown(); if (Console::ConsoleThread.joinable()) { Console::ConsoleThread.join();