]> gitweb.factorcode.org Git - factor.git/blob - vm/vm.cpp
399fca9864ec5a27d57eb930e304091a590489f0
[factor.git] / vm / vm.cpp
1 #include "master.hpp"
2
3 namespace factor
4 {
5
6 factor_vm::factor_vm(THREADHANDLE thread) :
7         nursery(0,0),
8         thread(thread),
9         callback_id(0),
10         c_to_factor_func(NULL),
11         counting_profiler_p(false),
12         sampling_profiler_p(false),
13         safepoint_fep_p(false),
14         gc_off(false),
15         current_gc(NULL),
16         current_gc_p(false),
17         current_jit_count(0),
18         gc_events(NULL),
19         fep_p(false),
20         fep_help_was_shown(false),
21         fep_disabled(false),
22         full_output(false),
23         last_nano_count(0),
24         signal_callstack_seg(NULL),
25         faulting_p(false)
26 {
27         primitive_reset_dispatch_stats();
28 }
29
30 factor_vm::~factor_vm()
31 {
32         delete_contexts();
33         if(signal_callstack_seg)
34         {
35                 delete signal_callstack_seg;
36                 signal_callstack_seg = NULL;
37         }
38         std::list<void **>::const_iterator iter = function_descriptors.begin();
39         std::list<void **>::const_iterator end = function_descriptors.end();
40         while(iter != end)
41         {
42                 delete [] *iter;
43                 iter++;
44         }
45 }
46
47 }