1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-19 19:20:23 +02:00

*** empty log message ***

This commit is contained in:
Keisuke Nishida 2001-04-25 01:55:45 +00:00
parent a6df585ae7
commit 46f215f85b
7 changed files with 465 additions and 26 deletions

View file

@ -322,13 +322,28 @@ do { \
#define FREE_FRAME() \
{ \
SCM *last_sp = sp; \
SCM *last_fp = fp; \
SCM *p = fp + bp->nargs + bp->nlocs; \
if (!SCM_FALSEP (p[1])) \
vp->this_frame = p[1]; \
else \
sp = SCM_FRAME_LOWER_ADDRESS (fp) - 1; \
fp = SCM_FRAME_STACK_CAST (p[2]); \
\
/* Restore pointers */ \
ip = SCM_FRAME_BYTE_CAST (p[3]); \
fp = SCM_FRAME_STACK_CAST (p[2]); \
\
if (!SCM_FALSEP (p[1])) \
{ \
/* Unlink the heap stack */ \
vp->this_frame = p[1]; \
} \
else \
{ \
/* Move stack items */ \
p += 4; \
sp = SCM_FRAME_LOWER_ADDRESS (last_fp); \
while (p <= last_sp) \
*sp++ = *p++; \
sp--; \
} \
}
#define CACHE_EXTERNAL() external = fp[bp->nargs + bp->nlocs]