mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 17:50:29 +02:00
scm_c_make_frame takes struct scm_frame as arg
* libguile/frames.h: * libguile/frames.c (scm_c_make_frame): Adapt to take a const struct scm_frame as the argument. Adapt callers. * libguile/continuations.c: * libguile/stacks.c: Adapt callers.
This commit is contained in:
parent
44d9705464
commit
8de051da47
4 changed files with 25 additions and 23 deletions
|
@ -1,5 +1,5 @@
|
|||
/* A stack holds a frame chain
|
||||
* Copyright (C) 1996,1997,2000,2001, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation
|
||||
* Copyright (C) 1996,1997,2000,2001, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public License
|
||||
|
@ -254,14 +254,16 @@ SCM_DEFINE (scm_make_stack, "make-stack", 1, 0, 1,
|
|||
{
|
||||
SCM cont;
|
||||
struct scm_vm_cont *c;
|
||||
struct scm_frame tmp;
|
||||
|
||||
cont = scm_i_capture_current_stack ();
|
||||
c = SCM_VM_CONT_DATA (cont);
|
||||
|
||||
frame = scm_c_make_frame (SCM_VM_FRAME_KIND_CONT, c,
|
||||
(c->fp + c->reloc) - c->stack_base,
|
||||
(c->sp + c->reloc) - c->stack_base,
|
||||
c->ra);
|
||||
c = SCM_VM_CONT_DATA (cont);
|
||||
tmp.stack_holder = c;
|
||||
tmp.fp_offset = (c->fp + c->reloc) - c->stack_base;
|
||||
tmp.sp_offset = (c->sp + c->reloc) - c->stack_base;
|
||||
tmp.ip = c->ra;
|
||||
frame = scm_c_make_frame (SCM_VM_FRAME_KIND_CONT, &tmp);
|
||||
}
|
||||
else if (SCM_VM_FRAME_P (obj))
|
||||
frame = obj;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue