From 15fb645babf445f2342d6504c8e57ef4e9b06d66 Mon Sep 17 00:00:00 2001 From: Mr-X-GTA <110748953+Mr-X-GTA@users.noreply.github.com> Date: Fri, 11 Apr 2025 16:33:25 +0200 Subject: [PATCH] fix(byte_patches): fix crash on exit (#160) --- src/core/memory/BytePatches.cpp | 9 ++++++++- src/game/frontend/submenus/Network/SavedPlayers.cpp | 3 +-- src/game/frontend/submenus/Recovery.cpp | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/core/memory/BytePatches.cpp b/src/core/memory/BytePatches.cpp index e6bbf4c..ae9d7ac 100644 --- a/src/core/memory/BytePatches.cpp +++ b/src/core/memory/BytePatches.cpp @@ -4,7 +4,7 @@ namespace YimMenu { BytePatches::Patch::~Patch() { - Restore(); + } void BytePatches::Patch::Apply() @@ -38,6 +38,8 @@ namespace YimMenu void BytePatches::Remove(std::shared_ptr& patch) { + patch->Restore(); + if (const auto it = std::find(m_Patches.begin(), m_Patches.end(), patch.get()); it != m_Patches.end()) { m_Patches.erase(it); @@ -47,6 +49,11 @@ namespace YimMenu void BytePatches::RestoreAll() { + for (auto& patch : m_Patches) + { + patch->Restore(); + } + m_Patches.clear(); } } \ No newline at end of file diff --git a/src/game/frontend/submenus/Network/SavedPlayers.cpp b/src/game/frontend/submenus/Network/SavedPlayers.cpp index cf516cd..b47a095 100644 --- a/src/game/frontend/submenus/Network/SavedPlayers.cpp +++ b/src/game/frontend/submenus/Network/SavedPlayers.cpp @@ -167,9 +167,8 @@ namespace YimMenu::Submenus g_SelectedPlayer = nullptr; g_SelectedRid = 0; } - - ImGui::EndChild(); } + ImGui::EndChild(); } static void RenderSavedPlayers() diff --git a/src/game/frontend/submenus/Recovery.cpp b/src/game/frontend/submenus/Recovery.cpp index 9e3ee23..055cba2 100644 --- a/src/game/frontend/submenus/Recovery.cpp +++ b/src/game/frontend/submenus/Recovery.cpp @@ -27,7 +27,7 @@ namespace YimMenu::Submenus } })); - generalGroup->AddItem(std::make_shared("playallmissionssolo"_J)); + generalGroup->AddItem(std::make_shared("playallmissionssolo"_J)); cayoPericoGroup->AddItem(std::make_shared("skipcayosetup"_J)); cayoPericoGroup->AddItem(std::make_shared("skipcayocooldown"_J));