VM: more destruction needed in the destructor
Console needs to be closed, special objects free'd and code heap deleted.locals-and-roots
parent
7342d97e6d
commit
335615a025
|
@ -13,8 +13,7 @@ factor_vm::factor_vm(THREADHANDLE thread)
|
||||||
signal_pipe_input(0),
|
signal_pipe_input(0),
|
||||||
signal_pipe_output(0),
|
signal_pipe_output(0),
|
||||||
gc_off(false),
|
gc_off(false),
|
||||||
data(NULL),
|
data(NULL), code(NULL), callbacks(NULL),
|
||||||
callbacks(NULL),
|
|
||||||
current_gc(NULL),
|
current_gc(NULL),
|
||||||
current_gc_p(false),
|
current_gc_p(false),
|
||||||
current_jit_count(0),
|
current_jit_count(0),
|
||||||
|
@ -30,6 +29,9 @@ factor_vm::factor_vm(THREADHANDLE thread)
|
||||||
}
|
}
|
||||||
|
|
||||||
factor_vm::~factor_vm() {
|
factor_vm::~factor_vm() {
|
||||||
|
free(alien_offset(special_objects[OBJ_EXECUTABLE]));
|
||||||
|
free(alien_offset(special_objects[OBJ_IMAGE]));
|
||||||
|
close_console();
|
||||||
FACTOR_ASSERT(!ctx);
|
FACTOR_ASSERT(!ctx);
|
||||||
FACTOR_FOR_EACH(unused_contexts) {
|
FACTOR_FOR_EACH(unused_contexts) {
|
||||||
delete *iter;
|
delete *iter;
|
||||||
|
@ -41,6 +43,8 @@ factor_vm::~factor_vm() {
|
||||||
delete callbacks;
|
delete callbacks;
|
||||||
if (data)
|
if (data)
|
||||||
delete data;
|
delete data;
|
||||||
|
if (code)
|
||||||
|
delete code;
|
||||||
if (signal_callstack_seg) {
|
if (signal_callstack_seg) {
|
||||||
delete signal_callstack_seg;
|
delete signal_callstack_seg;
|
||||||
signal_callstack_seg = NULL;
|
signal_callstack_seg = NULL;
|
||||||
|
|
Loading…
Reference in New Issue