vm: verifier shouldn't check for leftovers

It doesn't work after things have been freed
db4
Joe Groff 2011-11-25 19:44:43 -08:00
parent d6227c182b
commit 36d1e0a78c
1 changed files with 5 additions and 7 deletions

View File

@ -98,23 +98,21 @@ void code_heap::sweep()
}
struct all_blocks_set_verifier {
std::set<code_block*> *leftovers;
std::set<code_block*> *all_blocks;
all_blocks_set_verifier(std::set<code_block*> *leftovers) : leftovers(leftovers) {}
all_blocks_set_verifier(std::set<code_block*> *all_blocks) : all_blocks(all_blocks) {}
void operator()(code_block *block, cell size)
{
FACTOR_ASSERT(leftovers->find(block) != leftovers->end());
leftovers->erase(block);
FACTOR_ASSERT(all_blocks->find(block) != all_blocks->end());
all_blocks->erase(block);
}
};
void code_heap::verify_all_blocks_set()
{
std::set<code_block*> leftovers = all_blocks;
all_blocks_set_verifier verifier(&leftovers);
all_blocks_set_verifier verifier(&all_blocks);
allocator->iterate(verifier);
FACTOR_ASSERT(leftovers.empty());
}
code_block *code_heap::code_block_for_address(cell address)