summaryrefslogtreecommitdiff
path: root/libguile/continuations.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2013-11-21 17:13:18 +0100
committerAndy Wingo <wingo@pobox.com>2013-11-21 17:13:18 +0100
commit050a40db5b0b09f0b00d4d68aac67827c7f9b1ac (patch)
treec15d8b83fd8fad5626d2e115e99c55229dbb3147 /libguile/continuations.c
parent0bca90aac9a209b2ae06281b00d5c3b9939d605e (diff)
downloadguile-050a40db5b0b09f0b00d4d68aac67827c7f9b1ac.tar.gz
Heap frames have a "frame kind" bit
* libguile/frames.h (enum scm_vm_frame_kind, SCM_VM_FRAME_KIND) (scm_c_make_frame): Add a "frame kind" bit to the first word. This will allow the "stack holder" to be a non-SCM object. * libguile/continuations.c (scm_i_continuation_to_frame): * libguile/frames.c (scm_c_make_frame, scm_frame_previous) * libguile/stacks.c (scm_make_stack): * libguile/vm.c (vm_dispatch_hook): Adapt frame creators to set the frame kind bit.
Diffstat (limited to 'libguile/continuations.c')
-rw-r--r--libguile/continuations.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libguile/continuations.c b/libguile/continuations.c
index 7c40dbfe3..31e36441a 100644
--- a/libguile/continuations.c
+++ b/libguile/continuations.c
@@ -177,7 +177,7 @@ scm_i_continuation_to_frame (SCM continuation)
if (scm_is_true (cont->vm_cont))
{
struct scm_vm_cont *data = SCM_VM_CONT_DATA (cont->vm_cont);
- return scm_c_make_frame (cont->vm_cont,
+ return scm_c_make_frame (SCM_VM_FRAME_KIND_CONT, cont->vm_cont,
(data->fp + data->reloc) - data->stack_base,
(data->sp + data->reloc) - data->stack_base,
data->ra);