0.7.10.4:
[sbcl.git] / src / pcl / slots-boot.lisp
index 9208b63..273805b 100644 (file)
    (etypecase index
      (fixnum (if fsc-p
                 (lambda (instance)
+                  (check-obsolete-instance instance)
                   (let ((value (clos-slots-ref (fsc-instance-slots instance)
                                                index)))
                     (if (eq value +slot-unbound+)
                         (slot-unbound (class-of instance) instance slot-name)
                         value)))
                 (lambda (instance)
+                  (check-obsolete-instance instance)
                   (let ((value (clos-slots-ref (std-instance-slots instance)
                                              index)))
                     (if (eq value +slot-unbound+)
                         (slot-unbound (class-of instance) instance slot-name)
                         value)))))
      (cons   (lambda (instance)
+              (check-obsolete-instance instance)
               (let ((value (cdr index)))
                 (if (eq value +slot-unbound+)
                     (slot-unbound (class-of instance) instance slot-name)
    (etypecase index
      (fixnum (if fsc-p
                 (lambda (nv instance)
+                  (check-obsolete-instance instance)
                   (setf (clos-slots-ref (fsc-instance-slots instance) index)
                         nv))
                 (lambda (nv instance)
+                  (check-obsolete-instance instance)
                   (setf (clos-slots-ref (std-instance-slots instance) index)
                         nv))))
      (cons   (lambda (nv instance)
-              (declare (ignore instance))
+              (check-obsolete-instance instance)
               (setf (cdr index) nv))))
    `(writer ,slot-name)))
 
    (etypecase index
      (fixnum (if fsc-p
                 (lambda (instance)
+                  (check-obsolete-instance instance)
                   (not (eq (clos-slots-ref (fsc-instance-slots instance)
                                            index)
                            +slot-unbound+)))
                 (lambda (instance)
+                  (check-obsolete-instance instance)
                   (not (eq (clos-slots-ref (std-instance-slots instance)
                                            index)
                            +slot-unbound+)))))
      (cons (lambda (instance)
-            (declare (ignore instance))
+            (check-obsolete-instance instance)
             (not (eq (cdr index) +slot-unbound+)))))
    `(boundp ,slot-name)))
 
     (fixnum (if fsc-p
                (lambda (class instance slotd)
                  (declare (ignore slotd))
-                 (unless (fsc-instance-p instance) (error "not fsc"))
+                 (check-obsolete-instance instance)
                  (let ((value (clos-slots-ref (fsc-instance-slots instance)
                                               index)))
                    (if (eq value +slot-unbound+)
                        value)))
                (lambda (class instance slotd)
                  (declare (ignore slotd))
-                 (unless (std-instance-p instance) (error "not std"))
+                 (check-obsolete-instance instance)
                  (let ((value (clos-slots-ref (std-instance-slots instance)
                                               index)))
                    (if (eq value +slot-unbound+)
                        value)))))
     (cons   (lambda (class instance slotd)
              (declare (ignore slotd))
+             (check-obsolete-instance instance)
              (let ((value (cdr index)))
                (if (eq value +slot-unbound+)
                    (slot-unbound class instance slot-name)
     (fixnum (if fsc-p
                (lambda (nv class instance slotd)
                  (declare (ignore class slotd))
+                 (check-obsolete-instance instance)
                  (setf (clos-slots-ref (fsc-instance-slots instance) index)
                        nv))
                (lambda (nv class instance slotd)
                  (declare (ignore class slotd))
+                 (check-obsolete-instance instance)
                  (setf (clos-slots-ref (std-instance-slots instance) index)
                        nv))))
     (cons  (lambda (nv class instance slotd)
-            (declare (ignore class instance slotd))
+            (declare (ignore class slotd))
+            (check-obsolete-instance instance)
             (setf (cdr index) nv)))))
 
 (defun make-optimized-std-slot-boundp-using-class-method-function
     (fixnum (if fsc-p
                (lambda (class instance slotd)
                  (declare (ignore class slotd))
+                 (check-obsolete-instance instance)
                  (not (eq (clos-slots-ref (fsc-instance-slots instance) index)
                           +slot-unbound+)))
                (lambda (class instance slotd)
                  (declare (ignore class slotd))
+                 (check-obsolete-instance instance)
                  (not (eq (clos-slots-ref (std-instance-slots instance) index)
                           +slot-unbound+)))))
     (cons   (lambda (class instance slotd)
-             (declare (ignore class instance slotd))
+             (declare (ignore class slotd))
+             (check-obsolete-instance instance)
              (not (eq (cdr index) +slot-unbound+))))))
 
 (defun get-accessor-from-svuc-method-function (class slotd sdfun name)