diff options
author | Andy Wingo <wingo@pobox.com> | 2013-11-21 17:50:33 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-11-21 17:50:33 +0100 |
commit | 796e54a74ce30a22d4a49aa9f63001c572bc2481 (patch) | |
tree | b239b9a90bf7bc3d713dd2a605acc4723fa37f7a /libguile/vm.c | |
parent | b44f5451f89f33d85e1601de72317460614c4193 (diff) | |
download | guile-796e54a74ce30a22d4a49aa9f63001c572bc2481.tar.gz |
One more SCM vm user: continuations.
* libguile/continuations.c:
* libguile/continuations.h (struct scm_t_contregs): Rename SCM vm member
to struct scm_vm *vp.
(scm_i_make_continuation): Take vp instead of vm.
(scm_i_contregs_vp): Rename from scm_i_contregs_vm, return vp.
* libguile/vm-engine.c (continuation-call, call/cc): Fix remaining SCM
vm user.
* libguile/vm.c (vm_return_to_continuation): Adapt prototype.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r-- | libguile/vm.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libguile/vm.c b/libguile/vm.c index fe0a64dda..27990f934 100644 --- a/libguile/vm.c +++ b/libguile/vm.c @@ -112,21 +112,19 @@ scm_i_vm_capture_stack (SCM *stack_base, SCM *fp, SCM *sp, scm_t_uint32 *ra, } static void -vm_return_to_continuation (SCM vm, SCM cont, size_t n, SCM *argv) +vm_return_to_continuation (struct scm_vm *vp, SCM cont, size_t n, SCM *argv) { - struct scm_vm *vp; struct scm_vm_cont *cp; SCM *argv_copy; argv_copy = alloca (n * sizeof(SCM)); memcpy (argv_copy, argv, n * sizeof(SCM)); - vp = SCM_VM_DATA (vm); cp = SCM_VM_CONT_DATA (cont); if (vp->stack_size < cp->stack_size + n + 3) scm_misc_error ("vm-engine", "not enough space to reinstate continuation", - scm_list_2 (vm, cont)); + scm_list_1 (cont)); vp->sp = cp->sp; vp->fp = cp->fp; |