Heap frame "stack holders" are raw scm_vm / scm_vm_cont pointers

* libguile/frames.h (struct scm_frame): stack_holder is a void*.
* libguile/frames.c (scm_i_frame_stack_base, scm_i_frame_offset): Expect
  stack_holder to be the raw struct scm_vm or scm_vm_cont.

* libguile/continuations.c (scm_i_continuation_to_frame):
* libguile/stacks.c (scm_make_stack)
* libguile/vm.c (vm_dispatch_hook): Adapt creators.
This commit is contained in:
Andy Wingo 2013-11-21 17:21:37 +01:00
commit 5515edc5f2
5 changed files with 29 additions and 16 deletions

View file

@ -202,7 +202,7 @@ vm_dispatch_hook (SCM vm, int hook_num, SCM *argv, int n)
while the stack frame represented by the frame object is visible, so it
seems reasonable to limit the lifetime of frame objects. */
c_frame.stack_holder = vm;
c_frame.stack_holder = vp;
c_frame.fp_offset = vp->fp - vp->stack_base;
c_frame.sp_offset = vp->sp - vp->stack_base;
c_frame.ip = vp->ip;