1.0.20.28: Fewer STYLE-WARNINGs for gf calls.
[sbcl.git] / src / pcl / defs.lisp
index e01064e..bf3dc71 100644 (file)
@@ -76,7 +76,7 @@
         ;; FIXME: do we still need this?
         ((and (null args) (typep type 'classoid))
          (or (classoid-pcl-class type)
-             (ensure-non-standard-class (classoid-name type))))
+             (ensure-non-standard-class (classoid-name type) type)))
         ((specializerp type) type)))
 
 ;;; interface
         (push (list class-name symbol) *built-in-wrapper-symbols*)
         symbol)))
 \f
-(pushnew '%class *var-declarations*)
-(pushnew '%variable-rebinding *var-declarations*)
-
-(defun variable-class (var env)
-  (caddr (var-declaration 'class var env)))
-
 (defvar *standard-method-combination*)
 \f
 (defun plist-value (object name)
                (let ((subs (classoid-subclasses class)))
                  (/noshow subs)
                  (when subs
-                   (dohash (sub v subs)
+                   (dohash ((sub v) subs)
                      (declare (ignore v))
                      (/noshow sub)
-                     (when (member class (direct-supers sub))
+                     (when (member class (direct-supers sub) :test #'eq)
                        (res sub)))))
                (res))))
     (mapcar (lambda (kernel-bic-entry)
    ;; Used to make DFUN-STATE & FIN-FUNCTION updates atomic.
    (%lock
     :initform (sb-thread::make-spinlock :name "GF lock")
-    :reader gf-lock))
+    :reader gf-lock)
+   ;; Set to true by ADD-METHOD, REMOVE-METHOD; to false by
+   ;; MAYBE-UPDATE-INFO-FOR-GF.
+   (info-needs-update
+    :initform nil
+    :accessor gf-info-needs-update))
   (:metaclass funcallable-standard-class)
   (:default-initargs :method-class *the-class-standard-method*
                      :method-combination *standard-method-combination*))
     :reader class-direct-slots)
    (slots
     :initform ()
-    :reader class-slots)
-   (slot-vector
-    :initform #(nil)
-    :reader class-slot-vector)))
+    :reader class-slots)))
 
 ;;; The class STD-CLASS is an implementation-specific common
 ;;; superclass of the classes STANDARD-CLASS and