X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots.lisp;h=aa82a0e67a2acfc102ac4a0ca39f4ec3a24857cc;hb=2fe7ca730f378505f86a7553462fa3241185d444;hp=e726ba4a8723eee37f9f64b64d9f81c437d7a406;hpb=50462f68bf70faf0bd96de7517643afb740543e6;p=sbcl.git diff --git a/src/pcl/slots.lisp b/src/pcl/slots.lisp index e726ba4..aa82a0e 100644 --- a/src/pcl/slots.lisp +++ b/src/pcl/slots.lisp @@ -187,19 +187,14 @@ (defmethod slot-value-using-class ((class std-class) (object std-object) (slotd standard-effective-slot-definition)) + (check-obsolete-instance object) (let* ((location (slot-definition-location slotd)) (value (typecase location (fixnum (cond ((std-instance-p 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) - (when (invalid-wrapper-p (fsc-instance-wrapper - object)) - (check-wrapper-validity object)) (clos-slots-ref (fsc-instance-slots object) location)) (t (error "unrecognized instance type")))) @@ -218,19 +213,16 @@ (new-value (class std-class) (object std-object) (slotd standard-effective-slot-definition)) + (check-obsolete-instance object) (let ((location (slot-definition-location slotd))) (typecase location (fixnum (cond ((std-instance-p object) - (when (invalid-wrapper-p (std-instance-wrapper object)) - (check-wrapper-validity object)) - (setf (clos-slots-ref (std-instance-slots object) location) - new-value)) + (setf (clos-slots-ref (std-instance-slots object) location) + new-value)) ((fsc-instance-p object) - (when (invalid-wrapper-p (fsc-instance-wrapper object)) - (check-wrapper-validity object)) - (setf (clos-slots-ref (fsc-instance-slots object) location) - new-value)) + (setf (clos-slots-ref (fsc-instance-slots object) location) + new-value)) (t (error "unrecognized instance type")))) (cons (setf (cdr location) new-value)) @@ -243,19 +235,14 @@ ((class std-class) (object std-object) (slotd standard-effective-slot-definition)) + (check-obsolete-instance object) (let* ((location (slot-definition-location slotd)) (value (typecase location (fixnum (cond ((std-instance-p 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) - (when (invalid-wrapper-p (fsc-instance-wrapper - object)) - (check-wrapper-validity object)) (clos-slots-ref (fsc-instance-slots object) location)) (t (error "unrecognized instance type")))) @@ -272,19 +259,16 @@ ((class std-class) (object std-object) (slotd standard-effective-slot-definition)) + (check-obsolete-instance object) (let ((location (slot-definition-location slotd))) (typecase location (fixnum (cond ((std-instance-p object) - (when (invalid-wrapper-p (std-instance-wrapper object)) - (check-wrapper-validity object)) - (setf (clos-slots-ref (std-instance-slots object) location) - +slot-unbound+)) + (setf (clos-slots-ref (std-instance-slots object) location) + +slot-unbound+)) ((fsc-instance-p object) - (when (invalid-wrapper-p (fsc-instance-wrapper object)) - (check-wrapper-validity object)) - (setf (clos-slots-ref (fsc-instance-slots object) location) - +slot-unbound+)) + (setf (clos-slots-ref (fsc-instance-slots object) location) + +slot-unbound+)) (t (error "unrecognized instance type")))) (cons (setf (cdr location) +slot-unbound+))