1.0.6.47: small fixes
[sbcl.git] / src / pcl / methods.lisp
index 36fb2c0..c6fee7d 100644 (file)
 (defmethod specializer-class ((specializer eql-specializer))
   (class-of (slot-value specializer 'object)))
 
-;;; KLUDGE: this is needed to allow for user-defined specializers in
-;;; RAISE-METATYPE; however, the list of methods is maintained by
-;;; hand, which is error-prone.  We can't just add a method to
-;;; SPECIALIZER-CLASS, or at least not with confidence, as that
-;;; function is used elsewhere in PCL.  `STANDARD' here is used in the
-;;; sense of `comes with PCL' rather than `blessed by the
-;;; authorities'.  -- CSR, 2007-05-10
-(defmethod standard-specializer-p ((specializer class)) t)
-(defmethod standard-specializer-p ((specializer eql-specializer)) t)
-(defmethod standard-specializer-p ((specializer class-eq-specializer)) t)
-(defmethod standard-specializer-p ((specializer class-prototype-specializer))
-  t)
-(defmethod standard-specializer-p ((specializer specializer)) nil)
-
 (defun specializer-class-or-nil (specializer)
   (and (standard-specializer-p specializer)
        (specializer-class specializer)))
       (eq gf #'slot-boundp-using-class)))
 
 (defmethod compute-discriminating-function ((gf standard-generic-function))
-  (with-slots (dfun-state arg-info) gf
+  (let ((dfun-state (slot-value gf 'dfun-state)))
     (when (special-case-for-compute-discriminating-function-p gf)
       ;; if we have a special case for
       ;; COMPUTE-DISCRIMINATING-FUNCTION, then (at least for the
          ((eq gf #'slot-boundp-using-class)
           (update-slot-value-gf-info gf 'boundp)
           #'slot-boundp-using-class-dfun)
-         ((gf-precompute-dfun-and-emf-p arg-info)
+         ((gf-precompute-dfun-and-emf-p (slot-value gf 'arg-info))
           (make-final-dfun gf))
          (t
           (make-initial-dfun gf))))