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@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