X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-sxhash.lisp;h=74e739baa23400c84b231d4ad71ae5d2354e8b74;hb=c960f8bc221ef4db0058013b8aa992d9b5a73fb7;hp=3df7c3d7172467405e5ef36e48039bf197d71ca7;hpb=b870615b146940f661e5d0e9069ca4e16e9f483d;p=sbcl.git diff --git a/src/code/target-sxhash.lisp b/src/code/target-sxhash.lisp index 3df7c3d..74e739b 100644 --- a/src/code/target-sxhash.lisp +++ b/src/code/target-sxhash.lisp @@ -84,11 +84,12 @@ (declare (type index count)) (let ((result 408967240)) (declare (type fixnum result)) - (dotimes (i count) - (declare (type index i)) - (mixf result - (the fixnum - (ash (char-code (aref string i)) 5)))) + (unless (typep string '(vector nil)) + (dotimes (i count) + (declare (type index i)) + (mixf result + (the fixnum + (ash (char-code (aref string i)) 5))))) result)) ;;; test: ;;; (let ((ht (make-hash-table :test 'equal))) @@ -144,7 +145,7 @@ (sxhash-recurse (cdr x) (1- depthoid))) 261835505)) (instance - (if (typep x 'structure-object) + (if (or (typep x 'structure-object) (typep x 'condition)) (logxor 422371266 (sxhash ; through DEFTRANSFORM (classoid-name