diff options
-rw-r--r-- | vm/runtime.c | 7 | ||||
-rw-r--r-- | vm/runtime.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/vm/runtime.c b/vm/runtime.c index 240ba6f..3279354 100644 --- a/vm/runtime.c +++ b/vm/runtime.c @@ -325,6 +325,13 @@ void vm_load_registers(vm_t *vm, registers_t registers) vm->registers = registers; } +void vm_stop(vm_t *vm) +{ + free(vm->registers.data); + free(vm->program.instructions); + free(vm->stack.data); +} + void vm_print_registers(vm_t *vm, FILE *fp) { registers_t reg = vm->registers; diff --git a/vm/runtime.h b/vm/runtime.h index 1226ea9..9dd639e 100644 --- a/vm/runtime.h +++ b/vm/runtime.h @@ -58,6 +58,7 @@ err_t vm_execute_all(vm_t *); void vm_load_stack(vm_t *, byte *, size_t); void vm_load_program(vm_t *, inst_t *, size_t); void vm_load_registers(vm_t *, registers_t); +void vm_stop(vm_t *); // Print routines #define VM_PRINT_PROGRAM_EXCERPT 5 |