]> gitweb.factorcode.org Git - factor.git/blob - vm/code_roots.hpp
vm: add two missing files
[factor.git] / vm / code_roots.hpp
1 namespace factor
2 {
3
4 struct code_root {
5         cell value;
6         bool valid;
7         factor_vm *parent;
8
9         void push()
10         {
11                 parent->code_roots.push_back(this);
12         }
13
14         explicit code_root(cell value_, factor_vm *parent_) :
15                 value(value_), valid(true), parent(parent_)
16         {
17                 push();
18         }
19
20         ~code_root()
21         {
22 #ifdef FACTOR_DEBUG
23                 assert(parent->code_roots.back() == this);
24 #endif
25                 parent->code_roots.pop_back();
26         }
27 };
28
29 }