1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +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

@ -388,11 +388,8 @@ scm_c_frame_previous (enum scm_vm_frame_kind kind, struct scm_frame *frame)
frame->sp_offset = stack_top - new_sp;
frame->ip = SCM_FRAME_RETURN_ADDRESS (this_fp);
{
SCM proc = scm_c_frame_closure (kind, frame);
if (SCM_PROGRAM_P (proc) && SCM_PROGRAM_IS_BOOT (proc))
goto again;
}
if (scm_i_vm_is_boot_continuation_code (frame->ip))
goto again;
return 1;
}