VM: it's confusing that slot_visitors are called "workhorse" sometimes, let's standardize the name "visitor"
parent
5490c50217
commit
667e5768ba
|
@ -79,7 +79,7 @@ template <typename TargetGeneration, typename Policy> struct collector {
|
|||
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;
|
||||
|
@ -90,13 +90,13 @@ template <typename TargetGeneration, typename Policy> struct collector {
|
|||
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();
|
||||
}
|
||||
|
@ -107,8 +107,8 @@ template <typename TargetGeneration, typename Policy> struct collector {
|
|||
|
||||
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++;
|
||||
}
|
||||
|
@ -148,7 +148,7 @@ template <typename TargetGeneration, typename Policy> struct collector {
|
|||
cell* end_ptr = (cell*)end;
|
||||
|
||||
for (; slot_ptr < end_ptr; slot_ptr++)
|
||||
data_visitor.visit_handle(slot_ptr);
|
||||
visitor.visit_handle(slot_ptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -127,13 +127,13 @@ void factor_vm::fixup_data(cell data_offset, cell code_offset) {
|
|||
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;
|
||||
|
@ -177,8 +177,8 @@ struct startup_code_block_updater {
|
|||
: 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);
|
||||
|
|
|
@ -88,24 +88,23 @@ struct slot_become_fixup : no_fixup {
|
|||
};
|
||||
|
||||
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);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -144,14 +143,14 @@ void factor_vm::primitive_become() {
|
|||
|
||||
/* 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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue