diff options
author | Andy Wingo <wingo@pobox.com> | 2015-11-26 16:36:22 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-12-01 10:57:20 +0100 |
commit | 02fc5a772bc95bbd70a81b8589bf261a3822f9bd (patch) | |
tree | 36504315d7c2622762acb9744360eeef5c07f83e /libguile/stacks.c | |
parent | d729a0dc757943c2bafb0cb300fc1ae7b3f56e91 (diff) | |
download | guile-02fc5a772bc95bbd70a81b8589bf261a3822f9bd.tar.gz |
Identify boot continuations by code, not closure
* libguile/vm.h:
* libguile/vm.c (scm_i_vm_is_boot_continuation_code): New internal
procedure.
* libguile/stacks.c (scm_make_stack):
* libguile/frames.c (scm_c_frame_previous): Use new helper to identify
boot frames.
Diffstat (limited to 'libguile/stacks.c')
-rw-r--r-- | libguile/stacks.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libguile/stacks.c b/libguile/stacks.c index 366176b10..958103ad6 100644 --- a/libguile/stacks.c +++ b/libguile/stacks.c @@ -361,8 +361,7 @@ SCM_DEFINE (scm_make_stack, "make-stack", 1, 0, 1, /* Skip initial boot frame, if any. This is possible if the frame originates from a captured continuation. */ - if (SCM_PROGRAM_P (scm_c_frame_closure (kind, &frame)) - && SCM_PROGRAM_IS_BOOT (scm_c_frame_closure (kind, &frame)) + if (scm_i_vm_is_boot_continuation_code (frame.ip) && !scm_c_frame_previous (kind, &frame)) return SCM_BOOL_F; |