[movitz-cvs] CVS update: movitz/losp/muerte/hash-tables.lisp

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Fri Aug 26 19:38:52 UTC 2005


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory common-lisp.net:/tmp/cvs-serv28965

Modified Files:
	hash-tables.lisp 
Log Message:
Add some type declarations.

Date: Fri Aug 26 21:38:51 2005
Author: ffjeld

Index: movitz/losp/muerte/hash-tables.lisp
diff -u movitz/losp/muerte/hash-tables.lisp:1.10 movitz/losp/muerte/hash-tables.lisp:1.11
--- movitz/losp/muerte/hash-tables.lisp:1.10	Wed Aug 24 09:19:37 2005
+++ movitz/losp/muerte/hash-tables.lisp	Fri Aug 26 21:38:50 2005
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Mon Feb 19 19:09:05 2001
 ;;;;                
-;;;; $Id: hash-tables.lisp,v 1.10 2005/08/24 07:19:37 ffjeld Exp $
+;;;; $Id: hash-tables.lisp,v 1.11 2005/08/26 19:38:50 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -191,6 +191,7 @@
 		  (hash-table-count hash-table) 0)
 	    (do ((i 0 (+ i 2)))
 		((>= i bucket-length))
+	      (declare ((index 2) i))
 	      (let ((old-key (svref%unsafe bucket i)))
 		(unless (eq old-key '--no-hash-key--)
 		  (setf (gethash old-key hash-table)
@@ -206,7 +207,9 @@
 	(setf index2 0))))))
 
 (defun gethash-string (key-string start end hash-table &optional default (key 'identity))
-  (let ((bucket (hash-table-bucket hash-table)))
+  (let ((start (check-the index start))
+	(end (check-the index end))
+	(bucket (hash-table-bucket hash-table)))
     (with-subvector-accessor (key-string-ref key-string start end)
       (do* ((bucket-length (length bucket))
 	    (index2 (rem (* 2 (sxhash-subvector key-string start end 8))
@@ -222,6 +225,7 @@
 		   (do ((bs-index 0 (1+ bs-index))
 			(key-index start (1+ key-index)))
 		       ((>= key-index end) t)
+		     (declare (index bs-index key-index))
 		     (unless (and (< bs-index bs-length)
 				  (char= (funcall key (key-string-ref key-index))
 					 (schar bs bs-index)))
@@ -235,6 +239,7 @@
 		(rem (+ 2 index2) bucket-length))
 	(i 0 (+ i 2)))
       ((>= i bucket-length) nil)
+    (declare ((index 2) i index2))
     (let ((x (svref bucket index2)))
       (when (or (eq x '--no-hash-key--)
 		(funcall (hash-table-test hash-table) x key))
@@ -245,6 +250,7 @@
 	(do ((i (rem (+ index2 2) bucket-length)
 		(rem (+ i 2) bucket-length)))
 	    ((= i index2))
+	  (declare ((index 2) i))
 	  (let ((k (svref bucket i)))
 	    (when (eq x '--no-hash-key--)
 	      (return))
@@ -259,6 +265,7 @@
 	(bucket-length (length bucket))
 	(i 0 (+ i 2)))
       ((>= i bucket-length))
+    (declare ((index 2) i))
     (setf (svref bucket i) '--no-hash-key--))
   hash-table)
 




More information about the Movitz-cvs mailing list