summaryrefslogtreecommitdiff
path: root/libguile/stacks.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-01-13 22:33:21 +0100
committerAndy Wingo <wingo@pobox.com>2009-01-13 22:33:21 +0100
commit7aa6f86b77836b4bfe1a59feab7d08517177858e (patch)
tree57da8b790f061272d54e5267dba1da975209e450 /libguile/stacks.c
parentd5968e7f4e96d957157a31e577d8792afe655371 (diff)
downloadguile-7aa6f86b77836b4bfe1a59feab7d08517177858e.tar.gz
fix marking empty VM continuations
* libguile/vm.h (struct scm_vm_cont): * libguile/vm.c (capture_vm_cont, reinstate_vm_cont): Change so we just store the registers as they are, with the reloc. (vm_cont_mark): Only mark the stack if it has elements on it, otherwise we get a bogus fp. * libguile/stacks.c (scm_make_stack): Update for change to vm continuations.
Diffstat (limited to 'libguile/stacks.c')
-rw-r--r--libguile/stacks.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/stacks.c b/libguile/stacks.c
index 85527bd6a..e3d131d12 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -516,8 +516,8 @@ SCM_DEFINE (scm_make_stack, "make-stack", 1, 0, 1,
vm_cont = scm_cdr (scm_car (cont->vm_conts));
data = SCM_VM_CONT_DATA (vm_cont);
vmframe = scm_c_make_vm_frame (vm_cont,
- data->stack_base + data->fp,
- data->stack_base + data->sp,
+ data->fp + data->reloc,
+ data->sp + data->reloc,
data->ip,
data->reloc);
} else