X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fhash-table.lisp;h=8a79e0ea84ae5065b80fd79f1e1bf6d10eaff9f5;hb=9f409e8f8b0a0530725a13805f2b1b3c121ad46a;hp=c352a17a7f819b4df7819988b70b97130d0fbbcb;hpb=4eb1a6d3ad2b7dcc19ac0ec979a1eb1eb049659a;p=sbcl.git diff --git a/src/code/hash-table.lisp b/src/code/hash-table.lisp index c352a17..8a79e0e 100644 --- a/src/code/hash-table.lisp +++ b/src/code/hash-table.lisp @@ -53,17 +53,20 @@ (next-free-kv 0 :type index) ;; The index vector. This may be larger than the hash size to help ;; reduce collisions. - (index-vector (missing-arg) :type (simple-array (unsigned-byte 32) (*))) + (index-vector (missing-arg) + :type (simple-array (unsigned-byte #.sb!vm:n-word-bits) (*))) ;; This table parallels the KV vector, and is used to chain together ;; the hash buckets, the free list, and the values needing rehash, a ;; slot will only ever be in one of these lists. - (next-vector (missing-arg) :type (simple-array (unsigned-byte 32) (*))) + (next-vector (missing-arg) + :type (simple-array (unsigned-byte #.sb!vm:n-word-bits) (*))) ;; This table parallels the KV table, and can be used to store the ;; hash associated with the key, saving recalculation. Could be ;; useful for EQL, and EQUAL hash tables. This table is not needed - ;; for EQ hash tables, and when present the value of #x8000000 + ;; for EQ hash tables, and when present the value of #x80000000 ;; represents EQ-based hashing on the respective key. - (hash-vector nil :type (or null (simple-array (unsigned-byte 32) (*))))) + (hash-vector nil :type (or null (simple-array (unsigned-byte + #.sb!vm:n-word-bits) (*))))) (defmacro-mundanely with-hash-table-iterator ((function hash-table) &body body) #!+sb-doc