summaryrefslogtreecommitdiff
path: root/libguile/vm-engine.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2011-03-15 23:33:32 +0100
committerAndy Wingo <wingo@pobox.com>2011-03-15 23:45:58 +0100
commit9b709b0fe1ec5a71903e07d21006441d15e0c1ed (patch)
tree21ba9462ce57a01a57e5c7ab9a2d167a5fd299ef /libguile/vm-engine.c
parent958173e489c69b2f9e3c83752713a89e3ea3e79d (diff)
downloadguile-9b709b0fe1ec5a71903e07d21006441d15e0c1ed.tar.gz
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.
Diffstat (limited to 'libguile/vm-engine.c')
-rw-r--r--libguile/vm-engine.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/vm-engine.c b/libguile/vm-engine.c
index 20d9ed2c8..4b0ca3ec3 100644
--- a/libguile/vm-engine.c
+++ b/libguile/vm-engine.c
@@ -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);