]> gitweb.factorcode.org Git - factor.git/commitdiff
VM: bignum_roots traversal code deleted!
authorBjörn Lindqvist <bjourne@gmail.com>
Tue, 17 Jun 2014 15:22:03 +0000 (17:22 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 18 Nov 2014 01:27:35 +0000 (17:27 -0800)
vm/data_roots.hpp
vm/slot_visitor.hpp
vm/vm.hpp

index 9f26556ea05cc272b413cf0bdca84b9ce44ecbfe..94be9695d2f7ab05cd68e082288173159b951e09 100644 (file)
@@ -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)
-
 }
index 70b121d8782f3826211be1e57f26f10068b426d8..b1d4d4ef6bbf7b3e781b285ba67eb216906b2847 100644 (file)
@@ -119,7 +119,6 @@ template <typename Fixup> struct slot_visitor {
   void visit_slots(object* ptr);
   void visit_stack_elements(segment* region, cell* top);
   void visit_data_roots();
-  void visit_bignum_roots();
   void visit_callback_roots();
   void visit_literal_table_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 {
   slot_visitor<Fixup>* visitor;
 
@@ -251,7 +238,6 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_roots() {
   visit_handle(&parent->bignum_neg_one);
 
   visit_data_roots();
-  visit_bignum_roots();
   visit_callback_roots();
   visit_literal_table_roots();
   visit_sample_callstacks();
index 7e5f8359d3983f99600aaab88c623c4958da0784..2643cc5eafe19eda633705f058a1c130a6ee399b 100644 (file)
--- a/vm/vm.hpp
+++ b/vm/vm.hpp
@@ -114,7 +114,6 @@ struct factor_vm {
      themselves here. See data_roots.hpp and code_roots.hpp */
 
   std::vector<cell*> data_roots;
-  std::vector<bignum**> bignum_roots;
   std::vector<code_root*> code_roots;
 
   /* Debugger */