mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 09:10:22 +02:00
fix frame dynamic linkage in the face of partial continuation application
* libguile/vm-i-system.c (new-frame): Though it was appealing to set the dynamic link here on the incomplete frame, we no longer do that, for the reasons mentioned in the code. (call, mv-call): Adapt to set the frame's dynamic link. * libguile/vm-engine.c (vm_engine): Don't set dynamic link here, even for boot program. * libguile/frames.c (scm_frame_num_locals, scm_frame_local_ref) (scm_frame_local_set_x): Fix up not-yet-active frame detection.
This commit is contained in:
parent
958173e489
commit
9b709b0fe1
3 changed files with 40 additions and 17 deletions
|
@ -93,7 +93,7 @@ VM_NAME (SCM vm, SCM program, SCM *argv, int nargs)
|
|||
fp = sp + 1;
|
||||
ip = SCM_C_OBJCODE_BASE (bp);
|
||||
/* MV-call frame, function & arguments */
|
||||
PUSH ((SCM)fp); /* dynamic link */
|
||||
PUSH (0); /* dynamic link */
|
||||
PUSH (0); /* mvra */
|
||||
PUSH (0); /* ra */
|
||||
PUSH (prog);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue