summaryrefslogtreecommitdiff
path: root/libguile/vm.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-11-21 17:28:34 +0100
committerAndy Wingo <wingo@pobox.com>2013-11-21 17:28:34 +0100
commit44ece399074281dec3bd69ab76a20dec2b0d4bfc (patch)
tree4383a0d501596dd3010cb43e800b7d405b854d92 /libguile/vm.c
parent59f85eedc27fb82522fcd2788b4ab25409481630 (diff)
downloadguile-44ece399074281dec3bd69ab76a20dec2b0d4bfc.tar.gz
Remove use of SCM vm in compose-continuation
* libguile/vm.c (vm_reinstate_partial_continuation): Take struct scm_vm argument instead of SCM. * libguile/vm-engine.c (compose-continuation): Adapt.
Diffstat (limited to 'libguile/vm.c')
-rw-r--r--libguile/vm.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libguile/vm.c b/libguile/vm.c
index a34155654..aba83ac38 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -299,11 +299,11 @@ vm_abort (SCM vm, SCM tag, size_t nstack, SCM *stack_args, SCM tail, SCM *sp,
}
static void
-vm_reinstate_partial_continuation (SCM vm, SCM cont, size_t n, SCM *argv,
+vm_reinstate_partial_continuation (struct scm_vm *vp, SCM cont,
+ size_t n, SCM *argv,
scm_t_dynstack *dynstack,
scm_i_jmp_buf *registers)
{
- struct scm_vm *vp;
struct scm_vm_cont *cp;
SCM *argv_copy, *base;
scm_t_ptrdiff reloc;
@@ -312,7 +312,6 @@ vm_reinstate_partial_continuation (SCM vm, SCM cont, size_t n, SCM *argv,
argv_copy = alloca (n * sizeof(SCM));
memcpy (argv_copy, argv, n * sizeof(SCM));
- vp = SCM_VM_DATA (vm);
cp = SCM_VM_CONT_DATA (cont);
base = SCM_FRAME_LOCALS_ADDRESS (vp->fp);
reloc = cp->reloc + (base - cp->stack_base);
@@ -323,7 +322,7 @@ vm_reinstate_partial_continuation (SCM vm, SCM cont, size_t n, SCM *argv,
if ((base - vp->stack_base) + cp->stack_size + n + 1 > vp->stack_size)
scm_misc_error ("vm-engine",
"not enough space to instate partial continuation",
- scm_list_2 (vm, cont));
+ scm_list_1 (cont));
memcpy (base, cp->stack_base, cp->stack_size * sizeof (SCM));