[movitz-cvs] CVS update: movitz/losp/muerte/integers.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Sun Sep 18 15:58:11 UTC 2005
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv12001
Modified Files:
integers.lisp
Log Message:
Changed the bytespec representation back to integers. The longest
bignum is (expt 2 20) bits, so that's what we use for the
position. Most bytespec's sizes will fit in the 9 bits remaining in a fixnum.
Date: Sun Sep 18 17:58:10 2005
Author: ffjeld
Index: movitz/losp/muerte/integers.lisp
diff -u movitz/losp/muerte/integers.lisp:1.118 movitz/losp/muerte/integers.lisp:1.119
--- movitz/losp/muerte/integers.lisp:1.118 Sun Sep 18 17:09:22 2005
+++ movitz/losp/muerte/integers.lisp Sun Sep 18 17:58:09 2005
@@ -9,7 +9,7 @@
;;;; Created at: Wed Nov 8 18:44:57 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: integers.lisp,v 1.118 2005/09/18 15:09:22 ffjeld Exp $
+;;;; $Id: integers.lisp,v 1.119 2005/09/18 15:58:09 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -1396,13 +1396,15 @@
;;; bytes
(defun byte (size position)
- (cons size position))
+ (check-type size positive-fixnum)
+ (let ((position (check-the (unsigned-byte 20) position)))
+ (+ position (ash size 20))))
(defun byte-size (bytespec)
- (car bytespec))
+ (ash bytespec -20))
(defun byte-position (bytespec)
- (cdr bytespec))
+ (ldb (byte 20 0) bytespec))
(defun logbitp (index integer)
(check-type index positive-fixnum)
More information about the Movitz-cvs
mailing list