1
0
mirror of https://github.com/janet-lang/janet synced 2025-05-14 13:24:14 +00:00

Merge pull request #1569 from sogaiu/vm-bug-1566

This commit is contained in:
Calvin Rose 2025-03-12 21:13:49 -07:00 committed by GitHub
commit f92412841b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -798,14 +798,14 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
vm_pcnext(); vm_pcnext();
VM_OP(JOP_JUMP) VM_OP(JOP_JUMP)
pc += DS;
vm_maybe_auto_suspend(DS <= 0); vm_maybe_auto_suspend(DS <= 0);
pc += DS;
vm_next(); vm_next();
VM_OP(JOP_JUMP_IF) VM_OP(JOP_JUMP_IF)
if (janet_truthy(stack[A])) { if (janet_truthy(stack[A])) {
pc += ES;
vm_maybe_auto_suspend(ES <= 0); vm_maybe_auto_suspend(ES <= 0);
pc += ES;
} else { } else {
pc++; pc++;
} }
@ -815,15 +815,15 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
if (janet_truthy(stack[A])) { if (janet_truthy(stack[A])) {
pc++; pc++;
} else { } else {
pc += ES;
vm_maybe_auto_suspend(ES <= 0); vm_maybe_auto_suspend(ES <= 0);
pc += ES;
} }
vm_next(); vm_next();
VM_OP(JOP_JUMP_IF_NIL) VM_OP(JOP_JUMP_IF_NIL)
if (janet_checktype(stack[A], JANET_NIL)) { if (janet_checktype(stack[A], JANET_NIL)) {
pc += ES;
vm_maybe_auto_suspend(ES <= 0); vm_maybe_auto_suspend(ES <= 0);
pc += ES;
} else { } else {
pc++; pc++;
} }
@ -833,8 +833,8 @@ static JanetSignal run_vm(JanetFiber *fiber, Janet in) {
if (janet_checktype(stack[A], JANET_NIL)) { if (janet_checktype(stack[A], JANET_NIL)) {
pc++; pc++;
} else { } else {
pc += ES;
vm_maybe_auto_suspend(ES <= 0); vm_maybe_auto_suspend(ES <= 0);
pc += ES;
} }
vm_next(); vm_next();