summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/JitCommon/JitCache.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/JitCommon/JitCache.cpp b/Source/Core/Core/PowerPC/JitCommon/JitCache.cpp
index 7faf3b1258..af76158faa 100644
--- a/Source/Core/Core/PowerPC/JitCommon/JitCache.cpp
+++ b/Source/Core/Core/PowerPC/JitCommon/JitCache.cpp
@@ -243,7 +243,16 @@ void JitBaseBlockCache::ErasePhysicalRange(u32 address, u32 length)
// And remove the block.
DestroyBlock(*block);
- block_map.erase(block->physicalAddress);
+ auto block_map_iter = block_map.equal_range(block->physicalAddress);
+ while (block_map_iter.first != block_map_iter.second)
+ {
+ if (&block_map_iter.first->second == block)
+ {
+ block_map.erase(block_map_iter.first);
+ break;
+ }
+ block_map_iter.first++;
+ }
iter = start->second.erase(iter);
}
else