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