auto all_blocks_set_verifier = [&](code_block* block, cell size) {
FACTOR_ASSERT(all_blocks.find((cell)block) != all_blocks.end());
};
- allocator->iterate(all_blocks_set_verifier);
+ allocator->iterate(all_blocks_set_verifier, no_fixup());
}
code_block* code_heap::code_block_for_address(cell address) {
auto all_blocks_set_inserter = [&](code_block* block, cell size) {
all_blocks.insert((cell)block);
};
- allocator->iterate(all_blocks_set_inserter);
+ allocator->iterate(all_blocks_set_inserter, no_fixup());
#ifdef FACTOR_DEBUG
verify_all_blocks_set();
#endif
auto callback_updater = [&](code_block* stub, cell size) {
callbacks->update(stub);
};
- callbacks->allocator->iterate(callback_updater);
+ callbacks->allocator->iterate(callback_updater, no_fixup());
code->initialize_all_blocks_set();
// Dump all code blocks for debugging
void factor_vm::dump_code_heap(ostream& out) {
code_block_printer printer(this, out);
- code->allocator->iterate(printer);
+ code->allocator->iterate(printer, no_fixup());
out << printer.reloc_size << " bytes used by relocation tables" << endl;
out << printer.parameter_size << " bytes used by parameter tables" << endl;
}
}
}
-template <typename Block>
-template <typename Iterator>
-void free_list_allocator<Block>::iterate(Iterator& iter) {
- iterate(iter, no_fixup());
-}
-
template <typename Block>
allocator_room free_list_allocator<Block>::as_allocator_room() {
allocator_room room;
auto callback_slot_visitor = [&](code_block* stub, cell size) {
visit_handle(&stub->owner);
};
- parent->callbacks->allocator->iterate(callback_slot_visitor);
+ parent->callbacks->allocator->iterate(callback_slot_visitor, no_fixup());
FACTOR_FOR_EACH(parent->code->uninitialized_blocks) {
iter->second = visit_pointer(iter->second);
//code heap
template <typename Iterator> void each_code_block(Iterator& iter) {
- code->allocator->iterate(iter);
+ code->allocator->iterate(iter, no_fixup());
}
void update_code_heap_words(bool reset_inline_caches);