From 29dcf75b49020d6f9e6ab3060ca7c1530c3df0ef Mon Sep 17 00:00:00 2001 From: zilmar Date: Mon, 19 Feb 2018 18:17:35 +1100 Subject: [PATCH] [Debugger] Flush recompiler code on memory viewer changes --- .../Project64-core/N64System/Recompiler/RecompilerClass.h | 1 + .../UserInterface/Debugger/Debugger-ViewMemory.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/Source/Project64-core/N64System/Recompiler/RecompilerClass.h b/Source/Project64-core/N64System/Recompiler/RecompilerClass.h index 9bd4c26ae..350511a5c 100644 --- a/Source/Project64-core/N64System/Recompiler/RecompilerClass.h +++ b/Source/Project64-core/N64System/Recompiler/RecompilerClass.h @@ -37,6 +37,7 @@ public: Remove_DMA, Remove_StoreInstruc, Remove_Cheats, + Remove_MemViewer, }; typedef void(*DelayFunc)(); diff --git a/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp b/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp index 2cdc0a346..3f4187d02 100644 --- a/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp +++ b/Source/Project64/UserInterface/Debugger/Debugger-ViewMemory.cpp @@ -371,6 +371,14 @@ LRESULT CDebugMemoryView::OnMemoryModified(LPNMHDR lpNMHDR) ProtectMemory(ROM, g_Rom->GetRomSize(), MEM_READONLY); } } + if (g_Recompiler != NULL && m_DataVAddrr) + { + g_Recompiler->ClearRecompCode_Virt((m_DataStartLoc + Pos) & ~0xFFF, 0x1000, CRecompiler::Remove_MemViewer); + } + else if (g_Recompiler != NULL) + { + g_Recompiler->ClearRecompCode_Phys((m_DataStartLoc + Pos) & ~0xFFF, 0x1000, CRecompiler::Remove_MemViewer); + } } __except_catch() {