VM: it's confusing that slot_visitors are called "workhorse" sometimes, let's standardize the name "visitor"

db4
Björn Lindqvist 2015-02-19 04:51:45 +00:00 committed by John Benediktsson
parent 5490c50217
commit 667e5768ba
3 changed files with 23 additions and 24 deletions

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}