1.0.13.46: fixed bug #402
[sbcl.git] / src / pcl / defs.lisp
index 9a718ab..985bf5c 100644 (file)
         (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))
 (defclass slot-class (pcl-class)
   ((direct-slots
     :initform ()
-    :accessor class-direct-slots)
+    :reader class-direct-slots)
    (slots
     :initform ()
-    :accessor class-slots)
-   (slot-vector
-    :initform #(nil)
-    :reader class-slot-vector)))
-
-;;; Make the slot-vector accessed by the after-fixup FIND-SLOT-DEFINITION.
-;;; The slot vector is a simple-vector containing plists of slot-definitions
-;;; keyd by their names. Slot definitions are put in the position indicated
-;;; by (REM (SXHASH SLOT-NAME) (LENGTH SLOT-VECTOR)).
-;;;
-;;; We make the vector slightly longer then the number of slots both
-;;; to reduce collisions (but we're not too picky, really) and to
-;;; allow FIND-SLOT-DEFINTIONS work on slotless classes without
-;;; needing to check for zero-length vectors.
-(defun make-slot-vector (slots)
-  (let* ((n (+ (length slots) 2))
-         (vector (make-array n :initial-element nil)))
-    (flet ((add-to-vector (name slot)
-             (setf (svref vector (rem (sxhash name) n))
-                   (list* name slot (svref vector (rem (sxhash name) n))))))
-      (if (eq 'complete *boot-state*)
-         (dolist (slot slots)
-           (add-to-vector (slot-definition-name slot) slot))
-         (dolist (slot slots)
-           (add-to-vector (early-slot-definition-name slot) slot))))
-    vector))
+    :reader class-slots)))
 
 ;;; The class STD-CLASS is an implementation-specific common
 ;;; superclass of the classes STANDARD-CLASS and