Ignore when a proxied block points to erased mem.

Happens for example when a new module is loaded, sometimes.
This commit is contained in:
Unknown W. Brackets 2014-05-04 01:25:19 -07:00
parent c3a6092e26
commit 95dcadb6ae

View File

@ -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;