VM: bignum_roots traversal code deleted!
parent
981a02be27
commit
8741dbefce
|
@ -37,27 +37,4 @@ template <typename Type> struct data_root : public tagged<Type> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* A similar hack for the bignum implementation */
|
|
||||||
struct gc_bignum {
|
|
||||||
bignum** addr;
|
|
||||||
factor_vm* parent;
|
|
||||||
|
|
||||||
gc_bignum(bignum** addr, factor_vm* parent) : addr(addr), parent(parent) {
|
|
||||||
/* Don't bother with variables holding NULL pointers. */
|
|
||||||
if (*addr) {
|
|
||||||
parent->check_data_pointer(*addr);
|
|
||||||
parent->bignum_roots.push_back(addr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
~gc_bignum() {
|
|
||||||
if (*addr) {
|
|
||||||
FACTOR_ASSERT(parent->bignum_roots.back() == addr);
|
|
||||||
parent->bignum_roots.pop_back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#define GC_BIGNUM(x) gc_bignum x##__data_root(&x, this)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -119,7 +119,6 @@ template <typename Fixup> struct slot_visitor {
|
||||||
void visit_slots(object* ptr);
|
void visit_slots(object* ptr);
|
||||||
void visit_stack_elements(segment* region, cell* top);
|
void visit_stack_elements(segment* region, cell* top);
|
||||||
void visit_data_roots();
|
void visit_data_roots();
|
||||||
void visit_bignum_roots();
|
|
||||||
void visit_callback_roots();
|
void visit_callback_roots();
|
||||||
void visit_literal_table_roots();
|
void visit_literal_table_roots();
|
||||||
void visit_roots();
|
void visit_roots();
|
||||||
|
@ -186,18 +185,6 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_data_roots() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Fixup> void slot_visitor<Fixup>::visit_bignum_roots() {
|
|
||||||
std::vector<bignum**>::const_iterator iter =
|
|
||||||
parent->bignum_roots.begin();
|
|
||||||
std::vector<bignum**>::const_iterator end =
|
|
||||||
parent->bignum_roots.end();
|
|
||||||
|
|
||||||
for (; iter < end; iter++) {
|
|
||||||
bignum** ref = *iter;
|
|
||||||
*ref = (bignum*)fixup.fixup_data(*ref);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename Fixup> struct callback_slot_visitor {
|
template <typename Fixup> struct callback_slot_visitor {
|
||||||
slot_visitor<Fixup>* visitor;
|
slot_visitor<Fixup>* visitor;
|
||||||
|
|
||||||
|
@ -251,7 +238,6 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_roots() {
|
||||||
visit_handle(&parent->bignum_neg_one);
|
visit_handle(&parent->bignum_neg_one);
|
||||||
|
|
||||||
visit_data_roots();
|
visit_data_roots();
|
||||||
visit_bignum_roots();
|
|
||||||
visit_callback_roots();
|
visit_callback_roots();
|
||||||
visit_literal_table_roots();
|
visit_literal_table_roots();
|
||||||
visit_sample_callstacks();
|
visit_sample_callstacks();
|
||||||
|
|
|
@ -114,7 +114,6 @@ struct factor_vm {
|
||||||
themselves here. See data_roots.hpp and code_roots.hpp */
|
themselves here. See data_roots.hpp and code_roots.hpp */
|
||||||
|
|
||||||
std::vector<cell*> data_roots;
|
std::vector<cell*> data_roots;
|
||||||
std::vector<bignum**> bignum_roots;
|
|
||||||
std::vector<code_root*> code_roots;
|
std::vector<code_root*> code_roots;
|
||||||
|
|
||||||
/* Debugger */
|
/* Debugger */
|
||||||
|
|
Loading…
Reference in New Issue