diff options
author | Andy Wingo <wingo@oblong.net> | 2010-03-16 15:55:24 +0100 |
---|---|---|
committer | Andy Wingo <wingo@oblong.net> | 2010-03-16 15:55:24 +0100 |
commit | f7cea64566407151de4ff665ec787fca927b908f (patch) | |
tree | b11a9da7bb10a77dbf46f518eb0e1c2ea3fd19e1 /libguile/vm-i-system.c | |
parent | db5034ab89426edacf5229e7e6b37cb0495cd287 (diff) | |
download | guile-f7cea64566407151de4ff665ec787fca927b908f.tar.gz |
more vm gc fixen
* libguile/vm-i-system.c (continuation_call): Sync before calling a
continuation. Shouldn't much matter, but it seems like a good idea.
(wind-fluids): More importantly, sync before allocating a with-fluids
object.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r-- | libguile/vm-i-system.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c index e21a9109e..27c6c3374 100644 --- a/libguile/vm-i-system.c +++ b/libguile/vm-i-system.c @@ -983,6 +983,7 @@ VM_DEFINE_INSTRUCTION (89, continuation_call, "continuation-call", 0, -1, 0) SCM contregs; POP (contregs); + SYNC_ALL (); scm_i_check_continuation (contregs); vm_return_to_continuation (scm_i_contregs_vm (contregs), scm_i_contregs_vm_cont (contregs), @@ -1564,6 +1565,7 @@ VM_DEFINE_INSTRUCTION (90, wind_fluids, "wind-fluids", 1, -1, 0) if (sp - 2*n < SCM_FRAME_UPPER_ADDRESS (fp)) goto vm_error_stack_underflow; + SYNC_REGISTER (); wf = scm_i_make_with_fluids (n, sp + 1 - 2*n, sp + 1 - n); scm_i_swap_with_fluids (wf, dynstate); scm_i_set_dynwinds (scm_cons (wf, scm_i_dynwinds ())); |