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 { 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) void operator()(code_block *block, cell size)
{ {
FACTOR_ASSERT(leftovers->find(block) != leftovers->end()); FACTOR_ASSERT(all_blocks->find(block) != all_blocks->end());
leftovers->erase(block); all_blocks->erase(block);
} }
}; };
void code_heap::verify_all_blocks_set() void code_heap::verify_all_blocks_set()
{ {
std::set<code_block*> leftovers = all_blocks; all_blocks_set_verifier verifier(&all_blocks);
all_blocks_set_verifier verifier(&leftovers);
allocator->iterate(verifier); allocator->iterate(verifier);
FACTOR_ASSERT(leftovers.empty());
} }
code_block *code_heap::code_block_for_address(cell address) code_block *code_heap::code_block_for_address(cell address)