diff options
author | Andy Wingo <wingo@pobox.com> | 2011-03-15 23:33:32 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-03-15 23:45:58 +0100 |
commit | 9b709b0fe1ec5a71903e07d21006441d15e0c1ed (patch) | |
tree | 21ba9462ce57a01a57e5c7ab9a2d167a5fd299ef /libguile/vm-engine.c | |
parent | 958173e489c69b2f9e3c83752713a89e3ea3e79d (diff) | |
download | guile-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.c | 2 |
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); |