[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