0.9.18.38:
[sbcl.git] / src / pcl / dfun.lisp
index 3765007..a83e037 100644 (file)
@@ -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))