404 |
/* Stacks |
/* Stacks |
405 |
*/ |
*/ |
406 |
|
|
407 |
SCM scm_t_stackype; |
SCM scm_stack_type; |
408 |
|
|
409 |
SCM_DEFINE (scm_stack_p, "stack?", 1, 0, 0, |
SCM_DEFINE (scm_stack_p, "stack?", 1, 0, 0, |
410 |
(SCM obj), |
(SCM obj), |
484 |
size = n * SCM_FRAME_N_SLOTS; |
size = n * SCM_FRAME_N_SLOTS; |
485 |
|
|
486 |
/* Make the stack object. */ |
/* Make the stack object. */ |
487 |
stack = scm_make_struct (scm_t_stackype, SCM_MAKINUM (size), SCM_EOL); |
stack = scm_make_struct (scm_stack_type, SCM_MAKINUM (size), SCM_EOL); |
488 |
SCM_STACK (stack) -> id = id; |
SCM_STACK (stack) -> id = id; |
489 |
iframe = &SCM_STACK (stack) -> tail[0]; |
iframe = &SCM_STACK (stack) -> tail[0]; |
490 |
SCM_STACK (stack) -> frames = iframe; |
SCM_STACK (stack) -> frames = iframe; |
641 |
if (!dframe || SCM_VOIDFRAMEP (*dframe)) |
if (!dframe || SCM_VOIDFRAMEP (*dframe)) |
642 |
return SCM_BOOL_F; |
return SCM_BOOL_F; |
643 |
|
|
644 |
stack = scm_make_struct (scm_t_stackype, SCM_MAKINUM (SCM_FRAME_N_SLOTS), |
stack = scm_make_struct (scm_stack_type, SCM_MAKINUM (SCM_FRAME_N_SLOTS), |
645 |
SCM_EOL); |
SCM_EOL); |
646 |
SCM_STACK (stack) -> length = 1; |
SCM_STACK (stack) -> length = 1; |
647 |
SCM_STACK (stack) -> frames = &SCM_STACK (stack) -> tail[0]; |
SCM_STACK (stack) -> frames = &SCM_STACK (stack) -> tail[0]; |
776 |
SCM stack_layout |
SCM stack_layout |
777 |
= scm_make_struct_layout (scm_makfrom0str (SCM_STACK_LAYOUT)); |
= scm_make_struct_layout (scm_makfrom0str (SCM_STACK_LAYOUT)); |
778 |
vtable = scm_make_vtable_vtable (scm_nullstr, SCM_INUM0, SCM_EOL); |
vtable = scm_make_vtable_vtable (scm_nullstr, SCM_INUM0, SCM_EOL); |
779 |
scm_t_stackype |
scm_stack_type |
780 |
= scm_permanent_object (scm_make_struct (vtable, SCM_INUM0, |
= scm_permanent_object (scm_make_struct (vtable, SCM_INUM0, |
781 |
scm_cons (stack_layout, |
scm_cons (stack_layout, |
782 |
SCM_EOL))); |
SCM_EOL))); |
783 |
scm_set_struct_vtable_name_x (scm_t_stackype, scm_str2symbol ("stack")); |
scm_set_struct_vtable_name_x (scm_stack_type, scm_str2symbol ("stack")); |
784 |
#ifndef SCM_MAGIC_SNARFER |
#ifndef SCM_MAGIC_SNARFER |
785 |
#include "libguile/stacks.x" |
#include "libguile/stacks.x" |
786 |
#endif |
#endif |