From a937e5dce31ca3fb9f1af8066f0765d5473b8b31 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Wed, 4 Jan 2023 21:41:59 -0800 Subject: [PATCH] Debugger: Fix mem lock with optimizations disabled. --- Core/Debugger/WebSocket/MemorySubscriber.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Core/Debugger/WebSocket/MemorySubscriber.cpp b/Core/Debugger/WebSocket/MemorySubscriber.cpp index 8d391b3982..777077d681 100644 --- a/Core/Debugger/WebSocket/MemorySubscriber.cpp +++ b/Core/Debugger/WebSocket/MemorySubscriber.cpp @@ -45,6 +45,10 @@ DebuggerSubscriber *WebSocketMemoryInit(DebuggerEventHandlerMap &map) { } struct AutoDisabledReplacements { + AutoDisabledReplacements() {} + AutoDisabledReplacements(AutoDisabledReplacements &&other); + AutoDisabledReplacements(const AutoDisabledReplacements &) = delete; + AutoDisabledReplacements &operator =(const AutoDisabledReplacements &) = delete; ~AutoDisabledReplacements(); Memory::MemoryInitedLock *lock = nullptr; @@ -76,6 +80,15 @@ static AutoDisabledReplacements LockMemoryAndCPU(uint32_t addr, bool keepReplace return result; } +AutoDisabledReplacements::AutoDisabledReplacements(AutoDisabledReplacements &&other) { + lock = other.lock; + other.lock = nullptr; + replacements = std::move(other.replacements); + emuhacks = std::move(emuhacks); + saved = other.saved; + wasStepping = other.wasStepping; +} + AutoDisabledReplacements::~AutoDisabledReplacements() { if (saved) { std::lock_guard guard(MIPSComp::jitLock);