diff options
Diffstat (limited to 'libguile/vm.c')
-rw-r--r-- | libguile/vm.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libguile/vm.c b/libguile/vm.c index 0d424ec11..45040993f 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -1403,11 +1403,11 @@ abort_to_prompt (scm_thread *thread, jmp_buf *current_registers) vp->sp = sp; vp->ip = ip; - /* Jump! */ - longjmp (*registers, 1); - - /* Shouldn't get here */ - abort (); + /* If there are intervening C frames, then jump over them, making a + nonlocal exit. Otherwise fall through and let the VM pick up where + it left off. */ + if (current_registers != registers) + longjmp (*registers, 1); } SCM |