summaryrefslogtreecommitdiff
path: root/libguile/vm.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-11-21 17:50:33 +0100
committerAndy Wingo <wingo@pobox.com>2013-11-21 17:50:33 +0100
commit796e54a74ce30a22d4a49aa9f63001c572bc2481 (patch)
treeb239b9a90bf7bc3d713dd2a605acc4723fa37f7a /libguile/vm.c
parentb44f5451f89f33d85e1601de72317460614c4193 (diff)
downloadguile-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.c6
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;