1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-14 07:30:32 +02:00

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.
This commit is contained in:
Andy Wingo 2015-11-26 16:36:22 +01:00
parent d729a0dc75
commit 02fc5a772b
4 changed files with 10 additions and 7 deletions

View file

@ -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;