]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/vm.cpp
Put brackets around ipv6 addresses in `inet6 present`
[factor.git] / vm / vm.cpp
index a3caebf294cbf2c42db4097699b1eefaa590ed2e..bf4037962bf33720db1197a9fd33313bb13b5b96 100644 (file)
--- a/vm/vm.cpp
+++ b/vm/vm.cpp
@@ -7,14 +7,18 @@ factor_vm::factor_vm(THREADHANDLE thread)
       nursery(0, 0),
       faulting_p(false),
       thread(thread),
+#if defined(WINDOWS)
+      thread_id(GetCurrentThreadId()),
+      ctrl_break_thread(NULL),
+#endif
       callback_id(0),
       c_to_factor_func(NULL),
       sampling_profiler_p(false),
       signal_pipe_input(0),
       signal_pipe_output(0),
+      current_sample(0, 0, 0, 0, 0),
       gc_off(false),
-      data(NULL),
-      callbacks(NULL),
+      data(NULL), code(NULL), callbacks(NULL),
       current_gc(NULL),
       current_gc_p(false),
       current_jit_count(0),
@@ -23,13 +27,18 @@ factor_vm::factor_vm(THREADHANDLE thread)
       fep_help_was_shown(false),
       fep_disabled(false),
       full_output(false),
+      object_counter(0),
       last_nano_count(0),
       signal_callstack_seg(NULL),
-      safepoint() {
+      safepoint_fep_p(false),
+      stop_on_ctrl_break(false) {
   primitive_reset_dispatch_stats();
 }
 
 factor_vm::~factor_vm() {
+  free(alien_offset(special_objects[OBJ_EXECUTABLE]));
+  free(alien_offset(special_objects[OBJ_IMAGE]));
+  close_console();
   FACTOR_ASSERT(!ctx);
   FACTOR_FOR_EACH(unused_contexts) {
     delete *iter;
@@ -41,6 +50,8 @@ factor_vm::~factor_vm() {
     delete callbacks;
   if (data)
     delete data;
+  if (code)
+    delete code;
   if (signal_callstack_seg) {
     delete signal_callstack_seg;
     signal_callstack_seg = NULL;