mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +02:00
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.
This commit is contained in:
parent
db5034ab89
commit
f7cea64566
1 changed files with 2 additions and 0 deletions
|
@ -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 ()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue