code_heap* code;
TargetGeneration* target;
gc_workhorse<TargetGeneration, Policy> workhorse;
- slot_visitor<gc_workhorse<TargetGeneration, Policy> > data_visitor;
+ slot_visitor<gc_workhorse<TargetGeneration, Policy> > visitor;
cell cards_scanned;
cell decks_scanned;
cell code_blocks_scanned;
code(parent->code),
target(target),
workhorse(parent, target, policy),
- data_visitor(parent, workhorse),
+ visitor(parent, workhorse),
cards_scanned(0),
decks_scanned(0),
code_blocks_scanned(0) {}
void trace_object(object* ptr) {
- data_visitor.visit_slots(ptr);
+ visitor.visit_slots(ptr);
if (ptr->type() == ALIEN_TYPE)
((alien*)ptr)->update_address();
}
for (; iter != end; iter++) {
code_block* compiled = *iter;
- data_visitor.visit_code_block_objects(compiled);
- data_visitor.visit_embedded_literals(compiled);
+ visitor.visit_code_block_objects(compiled);
+ visitor.visit_embedded_literals(compiled);
compiled->flush_icache();
code_blocks_scanned++;
}
cell* end_ptr = (cell*)end;
for (; slot_ptr < end_ptr; slot_ptr++)
- data_visitor.visit_handle(slot_ptr);
+ visitor.visit_handle(slot_ptr);
}
}
struct startup_code_block_relocation_visitor {
factor_vm* parent;
startup_fixup fixup;
- slot_visitor<startup_fixup> data_visitor;
+ slot_visitor<startup_fixup> visitor;
startup_code_block_relocation_visitor(factor_vm* parent,
startup_fixup fixup)
: parent(parent),
fixup(fixup),
- data_visitor(slot_visitor<startup_fixup>(parent, fixup)) {}
+ visitor(slot_visitor<startup_fixup>(parent, fixup)) {}
void operator()(instruction_operand op) {
code_block* compiled = op.compiled;
: parent(parent), fixup(fixup) {}
void operator()(code_block* compiled, cell size) {
- slot_visitor<startup_fixup> data_visitor(parent, fixup);
- data_visitor.visit_code_block_objects(compiled);
+ slot_visitor<startup_fixup> visitor(parent, fixup);
+ visitor.visit_code_block_objects(compiled);
startup_code_block_relocation_visitor code_visitor(parent, fixup);
compiled->each_instruction_operand(code_visitor);
};
struct object_become_visitor {
- slot_visitor<slot_become_fixup>* workhorse;
+ slot_visitor<slot_become_fixup>* visitor;
- explicit object_become_visitor(slot_visitor<slot_become_fixup>* workhorse)
- : workhorse(workhorse) {}
+ explicit object_become_visitor(slot_visitor<slot_become_fixup>* visitor)
+ : visitor(visitor) {}
- void operator()(object* obj) { workhorse->visit_slots(obj); }
+ void operator()(object* obj) { visitor->visit_slots(obj); }
};
struct code_block_become_visitor {
- slot_visitor<slot_become_fixup>* workhorse;
+ slot_visitor<slot_become_fixup>* visitor;
explicit code_block_become_visitor(
- slot_visitor<slot_become_fixup>* workhorse)
- : workhorse(workhorse) {}
+ slot_visitor<slot_become_fixup>* visitor) : visitor(visitor) {}
void operator()(code_block* compiled, cell size) {
- workhorse->visit_code_block_objects(compiled);
- workhorse->visit_embedded_literals(compiled);
+ visitor->visit_code_block_objects(compiled);
+ visitor->visit_embedded_literals(compiled);
}
};
/* Update all references to old objects to point to new objects */
{
- slot_visitor<slot_become_fixup> workhorse(this,
- slot_become_fixup(&become_map));
- workhorse.visit_all_roots();
+ slot_visitor<slot_become_fixup> visitor(this,
+ slot_become_fixup(&become_map));
+ visitor.visit_all_roots();
- object_become_visitor object_visitor(&workhorse);
+ object_become_visitor object_visitor(&visitor);
each_object(object_visitor);
- code_block_become_visitor code_block_visitor(&workhorse);
+ code_block_become_visitor code_block_visitor(&visitor);
each_code_block(code_block_visitor);
}