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),
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;
delete callbacks;
if (data)
delete data;
+ if (code)
+ delete code;
if (signal_callstack_seg) {
delete signal_callstack_seg;
signal_callstack_seg = NULL;