X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-hash-table.lisp;h=844729c3a935a235a18b1ffd1e742e206dd8901d;hb=b8f63d9b4e978bec3bfc1f4fc471e5ed946781fd;hp=a27d1921fb9ad2e77154621ce4a3da903c3e5d36;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/target-hash-table.lisp b/src/code/target-hash-table.lisp index a27d192..844729c 100644 --- a/src/code/target-hash-table.lisp +++ b/src/code/target-hash-table.lisp @@ -11,9 +11,6 @@ ;;;; files for more information. (in-package "SB!IMPL") - -(file-comment - "$Header$") ;;;; utilities @@ -23,6 +20,11 @@ (deftype hash () `(integer 0 ,max-hash)) +;;; FIXME: Does this always make a nonnegative FIXNUM? If so, then +;;; explain why. If not (or if the reason it always makes a +;;; nonnegative FIXNUM is only the accident that pointers in supported +;;; architectures happen to be in the lower half of the address +;;; space), then fix it. #!-sb-fluid (declaim (inline pointer-hash)) (defun pointer-hash (key) (declare (values hash)) @@ -648,7 +650,7 @@ #!+sb-doc "For each entry in HASH-TABLE, call the designated function on the key and value of the entry. Return NIL." - (let ((fun (coerce function-designator 'function)) + (let ((fun (%coerce-callable-to-function function-designator)) (size (length (hash-table-next-vector hash-table)))) (declare (type function fun)) (do ((i 1 (1+ i)))