[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