diff --git a/hemlock/table.lisp b/hemlock/table.lisp index d2a66b0624b0a0505b15b5f7ecd142459c06aa29..f21d6fdbcd4d80c75af3b75ca2b9d76e0988d7ef 100644 --- a/hemlock/table.lisp +++ b/hemlock/table.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/table.lisp,v 1.1.1.4 1991/11/09 03:05:57 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/hemlock/table.lisp,v 1.1.1.5 1991/12/20 18:25:28 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -196,6 +196,9 @@ ;;; of INSERT-ELEMENT must be used as a new vector may be created. ;;; (Note that the arguments should probably be lexicals since some of ;;; them are evaluated more than once.) +;;; +;;; We clear out the old vector so that it won't hold on to garbage if it +;;; happens to be in static space. ;;; (defmacro insert-element (vector pos element num &optional (grow-factor 2)) `(let ((new-num (1+ ,num)) @@ -210,6 +213,7 @@ (replace new ,vector :end1 ,pos :end2 ,pos) (replace new ,vector :start1 (1+ ,pos) :end1 new-num :start2 ,pos :end2 ,num) + (fill ,vector nil) (setf (svref new ,pos) ,element) new)) (t