[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Fri Mar 16 21:12:52 UTC 2007


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv31042

Modified Files:
	scavenge.lisp 
Log Message:
Add support for bit-vectors in map-header-vals.


--- /project/movitz/cvsroot/movitz/losp/muerte/scavenge.lisp	2007/03/16 20:23:21	1.56
+++ /project/movitz/cvsroot/movitz/losp/muerte/scavenge.lisp	2007/03/16 21:12:52	1.57
@@ -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.56 2007/03/16 20:23:21 ffjeld Exp $
+;;;; $Id: scavenge.lisp,v 1.57 2007/03/16 21:12:52 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -180,6 +180,14 @@
                      "Scanned basic-vector at ~S with illegal length ~S." scan len)
              (record-scan (%word-offset scan #.(movitz:tag :other)))
              (incf scan (1+ (logand (1+ len) -2)))))
+          ((scavenge-wide-typep x :basic-vector #.(bt:enum-value 'movitz:movitz-vector-element-type :bit))
+           (assert (evenp scan) ()
+                   "Scanned bit-vector-header ~S at odd location #x~X." x scan)
+           (let ((len (memref scan 4)))
+             (assert (typep len 'positive-fixnum) ()
+                     "Scanned basic-vector at ~S with illegal length ~S." scan len)
+             (record-scan (%word-offset scan #.(movitz:tag :other)))
+             (incf scan (1+ (* 2 (truncate (+ 63 len) 64))))))
           ((scavenge-typep x :basic-vector)
            (if (or (scavenge-wide-typep x :basic-vector
                                         #.(bt:enum-value 'movitz:movitz-vector-element-type




More information about the Movitz-cvs mailing list