]> gitweb.factorcode.org Git - factor.git/commitdiff
VM: Refactor data_roots.hpp to Factor style
authorErik Charlebois <erikcharlebois@gmail.com>
Sun, 12 May 2013 01:56:42 +0000 (21:56 -0400)
committerErik Charlebois <erikcharlebois@gmail.com>
Sun, 12 May 2013 17:24:43 +0000 (13:24 -0400)
vm/data_roots.hpp

index 35b83cf7e7412ffa980b7f65567190620f2f96e8..15dc5f320376490bbe666f50e93e6179bdfd25a6 100644 (file)
@@ -1,56 +1,53 @@
-namespace factor
-{
-
-template<typename Type>
-struct data_root : public tagged<Type> {
-       factor_vm *parent;
-
-       void push()
-       {
-               parent->data_roots.push_back(data_root_range(&this->value_,1));
-       }
-
-       explicit data_root(cell value_, factor_vm *parent_)
-               : tagged<Type>(value_), parent(parent_)
-       {
-               push();
-       }
-
-       explicit data_root(Type *value_, factor_vm *parent_) :
-               tagged<Type>(value_), parent(parent_)
-       {
-               push();
-       }
-
-       const data_root<Type>& operator=(const Type *x) { tagged<Type>::operator=(x); return *this; }
-       const data_root<Type>& operator=(const cell &x) { tagged<Type>::operator=(x); return *this; }
-
-       ~data_root()
-       {
-               parent->data_roots.pop_back();
-       }
+namespace factor {
+
+template <typename Type> struct data_root : public tagged<Type> {
+  factor_vm* parent;
+
+  void push() {
+    parent->data_roots.push_back(data_root_range(&this->value_, 1));
+  }
+
+  explicit data_root(cell value_, factor_vm* parent_)
+      : tagged<Type>(value_), parent(parent_) {
+    push();
+  }
+
+  explicit data_root(Type* value_, factor_vm* parent_)
+      : tagged<Type>(value_), parent(parent_) {
+    push();
+  }
+
+  const data_root<Type>& operator=(const Type* x) {
+    tagged<Type>::operator=(x);
+    return *this;
+  }
+  const data_root<Type>& operator=(const cell& x) {
+    tagged<Type>::operator=(x);
+    return *this;
+  }
+
+  ~data_root() { parent->data_roots.pop_back(); }
 };
 
 /* A similar hack for the bignum implementation */
 struct gc_bignum {
-       bignum **addr;
-       factor_vm *parent;
+  bignum** addr;
+  factor_vm* parent;
 
-       gc_bignum(bignum **addr_, factor_vm *parent_) : addr(addr_), parent(parent_)
-       {
-               if(*addr_) parent->check_data_pointer(*addr_);
-               parent->bignum_roots.push_back((cell)addr);
-       }
+  gc_bignum(bignum** addr_, factor_vm* parent_) : addr(addr_), parent(parent_) {
+    if (*addr_)
+      parent->check_data_pointer(*addr_);
+    parent->bignum_roots.push_back((cell) addr);
+  }
 
-       ~gc_bignum()
-       {
+  ~gc_bignum() {
 #ifdef FACTOR_DEBUG
-               FACTOR_ASSERT(parent->bignum_roots.back() == (cell)addr);
+    FACTOR_ASSERT(parent->bignum_roots.back() == (cell) addr);
 #endif
-               parent->bignum_roots.pop_back();
-       }
+    parent->bignum_roots.pop_back();
+  }
 };
 
-#define GC_BIGNUM(x) gc_bignum x##__data_root(&x,this)
+#define GC_BIGNUM(x) gc_bignum x##__data_root(&x, this)
 
 }