diff options
Diffstat (limited to 'libguile/vm.c')
-rw-r--r-- | libguile/vm.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libguile/vm.c b/libguile/vm.c index 88c75fd33..b4ebbc724 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -1236,8 +1236,11 @@ scm_call_n (SCM proc, SCM *argv, size_t nargs) int resume = SCM_I_SETJMP (registers); if (SCM_UNLIKELY (resume)) - /* Non-local return. */ - vm_dispatch_abort_hook (vp); + { + scm_gc_after_nonlocal_exit (); + /* Non-local return. */ + vm_dispatch_abort_hook (vp); + } return vm_engines[vp->engine](thread, vp, ®isters, resume); } |