VM: removing the 1-arg overload of iterate() (better to be explicit about the fixup)
parent
764a604467
commit
d71bd83f57
|
@ -73,7 +73,7 @@ void code_heap::verify_all_blocks_set() {
|
||||||
auto all_blocks_set_verifier = [&](code_block* block, cell size) {
|
auto all_blocks_set_verifier = [&](code_block* block, cell size) {
|
||||||
FACTOR_ASSERT(all_blocks.find((cell)block) != all_blocks.end());
|
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) {
|
code_block* code_heap::code_block_for_address(cell address) {
|
||||||
|
@ -104,7 +104,7 @@ void code_heap::initialize_all_blocks_set() {
|
||||||
auto all_blocks_set_inserter = [&](code_block* block, cell size) {
|
auto all_blocks_set_inserter = [&](code_block* block, cell size) {
|
||||||
all_blocks.insert((cell)block);
|
all_blocks.insert((cell)block);
|
||||||
};
|
};
|
||||||
allocator->iterate(all_blocks_set_inserter);
|
allocator->iterate(all_blocks_set_inserter, no_fixup());
|
||||||
#ifdef FACTOR_DEBUG
|
#ifdef FACTOR_DEBUG
|
||||||
verify_all_blocks_set();
|
verify_all_blocks_set();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -138,7 +138,7 @@ void factor_vm::collect_compact_impl() {
|
||||||
auto callback_updater = [&](code_block* stub, cell size) {
|
auto callback_updater = [&](code_block* stub, cell size) {
|
||||||
callbacks->update(stub);
|
callbacks->update(stub);
|
||||||
};
|
};
|
||||||
callbacks->allocator->iterate(callback_updater);
|
callbacks->allocator->iterate(callback_updater, no_fixup());
|
||||||
|
|
||||||
code->initialize_all_blocks_set();
|
code->initialize_all_blocks_set();
|
||||||
|
|
||||||
|
|
|
@ -368,7 +368,7 @@ struct code_block_printer {
|
||||||
// Dump all code blocks for debugging
|
// Dump all code blocks for debugging
|
||||||
void factor_vm::dump_code_heap(ostream& out) {
|
void factor_vm::dump_code_heap(ostream& out) {
|
||||||
code_block_printer printer(this, 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.reloc_size << " bytes used by relocation tables" << endl;
|
||||||
out << printer.parameter_size << " bytes used by parameter tables" << endl;
|
out << printer.parameter_size << " bytes used by parameter tables" << endl;
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,12 +206,6 @@ void free_list_allocator<Block>::iterate(Iterator& iter, Fixup fixup) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Block>
|
|
||||||
template <typename Iterator>
|
|
||||||
void free_list_allocator<Block>::iterate(Iterator& iter) {
|
|
||||||
iterate(iter, no_fixup());
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Block>
|
template <typename Block>
|
||||||
allocator_room free_list_allocator<Block>::as_allocator_room() {
|
allocator_room free_list_allocator<Block>::as_allocator_room() {
|
||||||
allocator_room room;
|
allocator_room room;
|
||||||
|
|
|
@ -200,7 +200,7 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_all_roots() {
|
||||||
auto callback_slot_visitor = [&](code_block* stub, cell size) {
|
auto callback_slot_visitor = [&](code_block* stub, cell size) {
|
||||||
visit_handle(&stub->owner);
|
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) {
|
FACTOR_FOR_EACH(parent->code->uninitialized_blocks) {
|
||||||
iter->second = visit_pointer(iter->second);
|
iter->second = visit_pointer(iter->second);
|
||||||
|
|
|
@ -571,7 +571,7 @@ struct factor_vm {
|
||||||
|
|
||||||
//code heap
|
//code heap
|
||||||
template <typename Iterator> void each_code_block(Iterator& iter) {
|
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);
|
void update_code_heap_words(bool reset_inline_caches);
|
||||||
|
|
Loading…
Reference in New Issue