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

* Fix bug caused by frame size overflowing its field.

This commit is contained in:
Neil Jerram 2002-03-08 13:07:50 +00:00
parent 54737001bb
commit 020c890ccc
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-02 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (SCM_CEVAL): Cleaned up the handling of 'apply'. Removed

View file

@ -141,7 +141,7 @@ SCM_API 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

@ -1899,7 +1899,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>).