From: Christophe R. <cr...@us...> - 2002-08-07 18:48:50
|
Update of /cvsroot/sbcl/sbcl/src/code In directory usw-pr-cvs1:/tmp/cvs-serv2017/src/code Modified Files: toplevel.lisp Log Message: 0.7.6.14: Fix potential off-by-one in SCRUB-CONTROL-STACK when the stack grows downwards. v-----v-- guard page extent [ || ] ^-- word at which we should stop scrubbing in contrast with v----v-- guard page extent [ | ] ^-- word at which we should stop scrubbing ... <= changes to < ... I thought this might fix the large dynamic sizes after purify seen on the x86 since 0.7.6.2, but no dice :-/ Index: toplevel.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/toplevel.lisp,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- toplevel.lisp 25 Jul 2002 11:07:46 -0000 1.31 +++ toplevel.lisp 7 Aug 2002 18:48:48 -0000 1.32 @@ -216,7 +216,7 @@ (type (unsigned-byte 20) count) (values (unsigned-byte 20))) (let ((loc (int-sap (- (sap-int ptr) (+ offset sb!vm:n-word-bytes))))) - (cond ((<= (sap-int loc) end-of-stack) 0) + (cond ((< (sap-int loc) end-of-stack) 0) ((= offset bytes-per-scrub-unit) (look (int-sap (- (sap-int ptr) bytes-per-scrub-unit)) 0 count)) @@ -229,7 +229,7 @@ (type (unsigned-byte 20) count) (values (unsigned-byte 20))) (let ((loc (int-sap (- (sap-int ptr) offset)))) - (cond ((<= (sap-int loc) end-of-stack) 0) + (cond ((< (sap-int loc) end-of-stack) 0) ((= offset bytes-per-scrub-unit) count) ((zerop (sb!kernel::get-lisp-obj-address (stack-ref loc 0))) |