diff options
author | Jim Blandy <jimb@red-bean.com> | 1996-11-20 21:03:38 +0000 |
---|---|---|
committer | Jim Blandy <jimb@red-bean.com> | 1996-11-20 21:03:38 +0000 |
commit | ce4a361d9979cc1d8db518bcabb7c5bf8f645baa (patch) | |
tree | 9d5a21265ea26294cfe42d7c5d7da7b95c1a9df0 | |
parent | b8cae82a7e01fb9ad2e736e044af1ec80a7daa33 (diff) | |
download | guile-ce4a361d9979cc1d8db518bcabb7c5bf8f645baa.tar.gz |
* gc.c (scm_igc, scm_gc_mark): Round up the size of the stack we
pass to scm_mark_locations. (Thanks to Aubrey Jaffer.)
-rw-r--r-- | libguile/gc.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libguile/gc.c b/libguile/gc.c index 707ec4095..f7b5d8e94 100644 --- a/libguile/gc.c +++ b/libguile/gc.c @@ -495,8 +495,9 @@ scm_igc (what) /* This assumes that all registers are saved into the jmp_buf */ setjmp (scm_save_regs_gc_mark); scm_mark_locations ((SCM_STACKITEM *) scm_save_regs_gc_mark, - ( (scm_sizet) sizeof scm_save_regs_gc_mark - / sizeof (SCM_STACKITEM))); + ( (scm_sizet) (sizeof (SCM_STACKITEM) - 1 + + sizeof scm_save_regs_gc_mark) + / sizeof (SCM_STACKITEM))); { /* stack_len is long rather than scm_sizet in order to guarantee that @@ -682,7 +683,10 @@ gc_mark_nimp: (ptr) break; SCM_SETGC8MARK (ptr); scm_mark_locations (SCM_VELTS (ptr), - (scm_sizet) (SCM_LENGTH (ptr) + sizeof (scm_contregs) / sizeof (SCM_STACKITEM))); + (scm_sizet) + (SCM_LENGTH (ptr) + + (sizeof (SCM_STACKITEM) + -1 + sizeof (scm_contregs)) / + sizeof (SCM_STACKITEM))); break; case scm_tc7_bvect: case scm_tc7_byvect: |