From 95dcadb6ae4c4586aa60fb42cbbd7d44d1b23f0c Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 4 May 2014 01:25:19 -0700 Subject: [PATCH] Ignore when a proxied block points to erased mem. Happens for example when a new module is loaded, sometimes. --- Core/MIPS/JitCommon/JitBlockCache.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Core/MIPS/JitCommon/JitBlockCache.cpp b/Core/MIPS/JitCommon/JitBlockCache.cpp index 5f28b30b1..3aa1cc6e2 100644 --- a/Core/MIPS/JitCommon/JitBlockCache.cpp +++ b/Core/MIPS/JitCommon/JitBlockCache.cpp @@ -447,7 +447,10 @@ void JitBlockCache::DestroyBlock(int block_num, bool invalidate) { if (b->proxyFor) { for (size_t i = 0; i < b->proxyFor->size(); i++) { int proxied_blocknum = GetBlockNumberFromStartAddress((*b->proxyFor)[i], false); - DestroyBlock(proxied_blocknum, invalidate); + // If it was already cleared, we don't know which to destroy. + if (proxied_blocknum != -1) { + DestroyBlock(proxied_blocknum, invalidate); + } } b->proxyFor->clear(); delete b->proxyFor;