From fd8c7e7cc5235b30861926a5c1cad3675520269c Mon Sep 17 00:00:00 2001 From: "Javier B. Torres" Date: Wed, 21 Jan 2026 11:47:34 -0300 Subject: [PATCH] fix vm returning without doing gc reset --- src/vm.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vm.c b/src/vm.c index 79bd945..a002f1a 100644 --- a/src/vm.c +++ b/src/vm.c @@ -223,7 +223,7 @@ I vm_run(Vm *vm, Bc *chunk, I offset) { vm_rpush(vm, vm->chunk, vm->ip); vm->ip = chunk->items + ofs; break; - } + } case OP_DOWORD: { I hash = decode_sleb128(&vm->ip); Dt *word = lookup_hash(&vm->dictionary, hash); @@ -279,7 +279,7 @@ I vm_run(Vm *vm, Bc *chunk, I offset) { vm->chunk = frame.chunk; vm->ip = frame.ip; } else { - return 1; + goto done; } break; case OP_CHOOSE: { @@ -324,5 +324,7 @@ I vm_run(Vm *vm, Bc *chunk, I offset) { vm_error(vm, VM_ERR_RUNTIME, "unknown opcode"); } } +done: + gc_reset(&vm->gc, mark); return 1; }