X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fdfun.lisp;h=a83e0373204881bfa8ef2d8ef9bc618688694ef8;hb=4f8f4b25cb564509437d8fc26038143150077f14;hp=37650074eb5d10c24bdf459d294c3721386d87c3;hpb=6049dd2bf3dfe37080a30a4a751076c1254030bd;p=sbcl.git diff --git a/src/pcl/dfun.lisp b/src/pcl/dfun.lisp index 3765007..a83e037 100644 --- a/src/pcl/dfun.lisp +++ b/src/pcl/dfun.lisp @@ -897,8 +897,12 @@ Except see also BREAK-VICIOUS-METACIRCLE. -- CSR, 2003-05-28 (let ((class (early-method-class method))) (or (eq class *the-class-standard-writer-method*) (eq class *the-class-global-writer-method*))) - (or (standard-writer-method-p method) - (global-writer-method-p method)))) + (and + (or (standard-writer-method-p method) + (global-writer-method-p method)) + (not (safe-p + (slot-definition-class + (accessor-method-slot-definition method))))))) methods) 'writer)))) @@ -1281,7 +1285,9 @@ Except see also BREAK-VICIOUS-METACIRCLE. -- CSR, 2003-05-28 (find-slot-definition accessor-class slot-name))))) (when (and slotd (or early-p - (slot-accessor-std-p slotd accessor-type))) + (slot-accessor-std-p slotd accessor-type)) + (or early-p + (not (safe-p accessor-class)))) (values (if early-p (early-slot-definition-location slotd) (slot-definition-location slotd))