1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

* Fix bug caused by frame size overflowing its field.

This commit is contained in:
Neil Jerram 2002-03-08 12:59:27 +00:00
parent 6488d89c9e
commit b045c732d3
3 changed files with 11 additions and 2 deletions

View file

@ -1,3 +1,12 @@
2002-03-08 Neil Jerram <neil@ossau.uklinux.net>
* debug.h (SCM_MAX_FRAME_SIZE): Remove incorrect comment about use
of SCM_MAX_FRAME_SIZE as a bit mask; it isn't used like this.
* eval.c (SCM_CEVAL): Don't store scm_debug_eframe_size in
debug.status. It isn't needed, and it can overflow the bits
reserved for it (which may lead to a segv or a GC abort).
2002-03-01 Dirk Herrmann <D.Herrmann@tu-bs.de>
* gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, DOUBLECELL_ALIGNED_P,

View file

@ -143,7 +143,7 @@ extern scm_t_debug_frame *scm_last_debug_frame;
#define SCM_TRACED_FRAME (1L << 8)
#define SCM_ARGS_READY (1L << 7)
#define SCM_DOVERFLOW (1L << 6)
#define SCM_MAX_FRAME_SIZE 63 /* also used as a mask for the size field */
#define SCM_MAX_FRAME_SIZE 63
#define SCM_FRAMETYPE (3L << 11)

View file

@ -1838,7 +1838,7 @@ SCM_CEVAL (SCM x, SCM env)
scm_t_debug_frame debug;
scm_t_debug_info *debug_info_end;
debug.prev = scm_last_debug_frame;
debug.status = scm_debug_eframe_size;
debug.status = 0;
/*
* The debug.vect contains twice as much scm_t_debug_info frames as the
* user has specified with (debug-set! frames <n>).