JitCache: Only call DestroyBlock on valid blocks.
This commit is contained in:
parent
113d6b3b84
commit
9b77a39767
|
@ -72,7 +72,8 @@ void JitBaseBlockCache::Clear()
|
|||
m_jit.js.pairedQuantizeAddresses.clear();
|
||||
for (int i = 1; i < num_blocks; i++)
|
||||
{
|
||||
DestroyBlock(blocks[i], false);
|
||||
if (!block.invalid)
|
||||
DestroyBlock(blocks[i]);
|
||||
}
|
||||
links_to.clear();
|
||||
block_map.clear();
|
||||
|
@ -213,7 +214,7 @@ void JitBaseBlockCache::InvalidateICache(u32 address, const u32 length, bool for
|
|||
auto it = block_map.lower_bound(std::make_pair(pAddr, 0));
|
||||
while (it != block_map.end() && it->first.second < pAddr + length)
|
||||
{
|
||||
DestroyBlock(*it->second, true);
|
||||
DestroyBlock(*it->second);
|
||||
it = block_map.erase(it);
|
||||
}
|
||||
|
||||
|
@ -302,12 +303,11 @@ void JitBaseBlockCache::UnlinkBlock(const JitBlock& block)
|
|||
}
|
||||
}
|
||||
|
||||
void JitBaseBlockCache::DestroyBlock(JitBlock& block, bool invalidate)
|
||||
void JitBaseBlockCache::DestroyBlock(JitBlock& block)
|
||||
{
|
||||
if (block.invalid)
|
||||
{
|
||||
if (invalidate)
|
||||
PanicAlert("Invalidating invalid block %p", &block);
|
||||
PanicAlert("Invalidating invalid block %p", &block);
|
||||
return;
|
||||
}
|
||||
block.invalid = true;
|
||||
|
|
|
@ -159,7 +159,7 @@ private:
|
|||
void LinkBlockExits(JitBlock& block);
|
||||
void LinkBlock(JitBlock& block);
|
||||
void UnlinkBlock(const JitBlock& block);
|
||||
void DestroyBlock(JitBlock& block, bool invalidate);
|
||||
void DestroyBlock(JitBlock& block);
|
||||
|
||||
void MoveBlockIntoFastCache(u32 em_address, u32 msr);
|
||||
|
||||
|
|
Loading…
Reference in New Issue