X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-sxhash.lisp;h=cc574a5d11c3249ecb985fc08043d5a9c6db0b9a;hb=f409f90c5e8c4c87ed9fa6efdc0e5c1952d94602;hp=0b65801e738c64a2384863f5f269dcc181579ca9;hpb=a3ab89c1db0dd9bfb911532ca134be16f16c4c1b;p=sbcl.git diff --git a/src/code/target-sxhash.lisp b/src/code/target-sxhash.lisp index 0b65801..cc574a5 100644 --- a/src/code/target-sxhash.lisp +++ b/src/code/target-sxhash.lisp @@ -144,10 +144,11 @@ (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 @@ -247,8 +248,8 @@ (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))) @@ -313,7 +314,7 @@ (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