diff --git a/libguile/ChangeLog b/libguile/ChangeLog index ff1d24dc3..a582bf9f6 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,12 @@ +2002-03-08 Neil Jerram + + * 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 * gc.c (SCM_HEAP_SEG_SIZE, CELL_UP, CELL_DN, DOUBLECELL_ALIGNED_P, diff --git a/libguile/debug.h b/libguile/debug.h index 06a3133cb..eee3e9ab2 100644 --- a/libguile/debug.h +++ b/libguile/debug.h @@ -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) diff --git a/libguile/eval.c b/libguile/eval.c index 24691c3b5..a16ed10e4 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -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 ).