0.7.7.10:
[sbcl.git] / src / pcl / slots.lisp
index 6d82bcd..e726ba4 100644 (file)
@@ -28,7 +28,7 @@
 (define-condition unbound-slot (cell-error)
   ((instance :reader unbound-slot-instance :initarg :instance)
    (slot :reader unbound-slot-slot :initarg :slot))
-  (:report (lambda(condition stream)
+  (:report (lambda (condition stream)
             (format stream "The slot ~S is unbound in the object ~S."
                     (unbound-slot-slot condition)
                     (unbound-slot-instance condition)))))
       `(accessor-set-slot-value ,object-form ,slot-name-form ,new-value-form)
       `(set-slot-value-normal ,object-form ,slot-name-form ,new-value-form)))
 
-(defconstant +optimize-slot-boundp+ nil)
-
 (defun slot-boundp (object slot-name)
   (let* ((class (class-of object))
         (slot-definition (find-slot-definition class slot-name)))
         (value (typecase location
                  (fixnum
                   (cond ((std-instance-p object)
-                         ;; FIXME: EQ T (WRAPPER-STATE ..) is better done
-                         ;; through INVALID-WRAPPER-P (here and below).
-                         (unless (eq t (wrapper-state (std-instance-wrapper
-                                                       object)))
+                         (when (invalid-wrapper-p (std-instance-wrapper
+                                                    object))
                            (check-wrapper-validity object))
                          (clos-slots-ref (std-instance-slots object)
                                          location))
                         ((fsc-instance-p object)
-                         (unless (eq t (wrapper-state (fsc-instance-wrapper
-                                                       object)))
+                         (when (invalid-wrapper-p (fsc-instance-wrapper
+                                                    object))
                            (check-wrapper-validity object))
                          (clos-slots-ref (fsc-instance-slots object)
                                          location))
     (typecase location
       (fixnum
        (cond ((std-instance-p object)
-             (unless (eq t (wrapper-state (std-instance-wrapper object)))
+             (when (invalid-wrapper-p (std-instance-wrapper object))
                (check-wrapper-validity object))
                (setf (clos-slots-ref (std-instance-slots object) location)
                     new-value))
             ((fsc-instance-p object)
-             (unless (eq t (wrapper-state (fsc-instance-wrapper object)))
+             (when (invalid-wrapper-p (fsc-instance-wrapper object))
                (check-wrapper-validity object))
                (setf (clos-slots-ref (fsc-instance-slots object) location)
                     new-value))
         (value (typecase location
                  (fixnum
                   (cond ((std-instance-p object)
-                         (unless (eq t (wrapper-state (std-instance-wrapper
-                                                       object)))
+                         (when (invalid-wrapper-p (std-instance-wrapper
+                                                    object))
                            (check-wrapper-validity object))
                          (clos-slots-ref (std-instance-slots object)
                                          location))
                         ((fsc-instance-p object)
-                         (unless (eq t (wrapper-state (fsc-instance-wrapper
-                                                       object)))
+                         (when (invalid-wrapper-p (fsc-instance-wrapper
+                                                    object))
                            (check-wrapper-validity object))
                          (clos-slots-ref (fsc-instance-slots object)
                                          location))
     (typecase location
       (fixnum
        (cond ((std-instance-p object)
-             (unless (eq t (wrapper-state (std-instance-wrapper object)))
+             (when (invalid-wrapper-p (std-instance-wrapper object))
                (check-wrapper-validity object))
                (setf (clos-slots-ref (std-instance-slots object) location)
                     +slot-unbound+))
             ((fsc-instance-p object)
-             (unless (eq t (wrapper-state (fsc-instance-wrapper object)))
+             (when (invalid-wrapper-p (fsc-instance-wrapper object))
                (check-wrapper-validity object))
                (setf (clos-slots-ref (fsc-instance-slots object) location)
                     +slot-unbound+))