VM: more destruction needed in the destructor

Console needs to be closed, special objects free'd and code heap
deleted.
locals-and-roots
Björn Lindqvist 2016-05-14 01:30:36 +02:00
parent 7342d97e6d
commit 335615a025
1 changed files with 6 additions and 2 deletions

View File

@ -13,8 +13,7 @@ factor_vm::factor_vm(THREADHANDLE thread)
signal_pipe_input(0),
signal_pipe_output(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),
@ -30,6 +29,9 @@ factor_vm::factor_vm(THREADHANDLE thread)
}
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 +43,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;