[movitz-cvs] CVS update: movitz/losp/muerte/scavenge.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Fri Oct 22 07:57:27 UTC 2004
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv17455
Modified Files:
scavenge.lisp
Log Message:
Remove the *scan* variable that was used for debugging before. Also
improve detection of non-pointers in the scanner.
Date: Fri Oct 22 09:57:25 2004
Author: ffjeld
Index: movitz/losp/muerte/scavenge.lisp
diff -u movitz/losp/muerte/scavenge.lisp:1.33 movitz/losp/muerte/scavenge.lisp:1.34
--- movitz/losp/muerte/scavenge.lisp:1.33 Mon Oct 11 15:53:25 2004
+++ movitz/losp/muerte/scavenge.lisp Fri Oct 22 09:57:25 2004
@@ -10,7 +10,7 @@
;;;; Author: Frode Vatvedt Fjeld <frodef at acm.org>
;;;; Created at: Mon Mar 29 14:54:08 2004
;;;;
-;;;; $Id: scavenge.lisp,v 1.33 2004/10/11 13:53:25 ffjeld Exp $
+;;;; $Id: scavenge.lisp,v 1.34 2004/10/22 07:57:25 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -48,12 +48,13 @@
((>= scan end-location))
(with-simple-restart (continue-map-heap-words
"Continue map-heap-words at location ~S." (1+ scan))
- (let ((*scan* scan)
- (x (memref scan 0 :type :unsigned-byte16)))
- (declare (special *scan*))
+ (let ((x (memref scan 0 :type :unsigned-byte16))
+ (x2 (memref scan 1 :type :unsigned-byte16)))
(when verbose
(format *terminal-io* " [at ~S: ~S]" scan x))
(cond
+ ((or (and (= 0 x2) (= 2 x))
+ (and (= #xffff x2) (= #xfffe x))))
((let ((tag (ldb (byte 3 0) x)))
(or (= tag #.(movitz:tag :null))
(= tag #.(movitz:tag :even-fixnum))
More information about the Movitz-cvs
mailing list