0.8.1.5:
[sbcl.git] / src / code / target-sxhash.lisp
index 0b65801..cc574a5 100644 (file)
                         (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
-                            (class-name (layout-class (%instance-layout x)))))
+                            (classoid-name
+                             (layout-classoid (%instance-layout x)))))
                    (sxhash-instance x)))
               (symbol (sxhash x)) ; through DEFTRANSFORM
               (array
   (declare (type (integer 0 #.+max-hash-depthoid+) depthoid))
   (let* ((layout (%instance-layout key)) ; i.e. slot #0
         (length (layout-length layout))
-        (class (layout-class layout))
-        (name (class-name class))
+        (classoid (layout-classoid layout))
+        (name (classoid-name classoid))
         (result (mix (sxhash name) (the fixnum 79867))))
     (declare (type fixnum result))
     (dotimes (i (min depthoid (1- length)))
               (etypecase key
                 (single-float (frob single-float))
                 (double-float (frob double-float))
-                (short-float (frob short-float))
+                #!+long-float
                 (long-float (error "LONG-FLOAT not currently supported")))))
       (rational (if (and (<= most-negative-double-float
                             key