X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots-boot.lisp;h=9fc23ba78fba06ebbb862ced7d63cca871491ddb;hb=ba38798a5ca26b90647a1993f348806cb32f2d1b;hp=98d9848e320de4bdb0211ff6a7505142de75311d;hpb=203c15eefffd996fd20bd28d461ea1aa3865dbbe;p=sbcl.git diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp index 98d9848..9fc23ba 100644 --- a/src/pcl/slots-boot.lisp +++ b/src/pcl/slots-boot.lisp @@ -88,8 +88,7 @@ (unless (constantp slot-name) (error "~S requires its slot-name argument to be a constant" 'accessor-slot-boundp)) - (let* ((slot-name (eval slot-name)) - (sym (slot-boundp-symbol slot-name))) + (let ((slot-name (eval slot-name))) `(slot-boundp-normal ,object ',slot-name))) (defun structure-slot-boundp (object) @@ -98,8 +97,8 @@ (defun make-structure-slot-boundp-function (slotd) (let* ((reader (slot-definition-internal-reader-function slotd)) - (fun #'(lambda (object) - (not (eq (funcall reader object) +slot-unbound+))))) + (fun (lambda (object) + (not (eq (funcall reader object) +slot-unbound+))))) (declare (type function reader)) fun)) @@ -130,7 +129,7 @@ (defun make-optimized-std-reader-method-function (fsc-p slot-name index) (declare #.*optimize-speed*) - (set-function-name + (set-fun-name (etypecase index (fixnum (if fsc-p (lambda (instance) @@ -154,7 +153,7 @@ (defun make-optimized-std-writer-method-function (fsc-p slot-name index) (declare #.*optimize-speed*) - (set-function-name + (set-fun-name (etypecase index (fixnum (if fsc-p (lambda (nv instance) @@ -170,20 +169,20 @@ (defun make-optimized-std-boundp-method-function (fsc-p slot-name index) (declare #.*optimize-speed*) - (set-function-name + (set-fun-name (etypecase index (fixnum (if fsc-p - #'(lambda (instance) - (not (eq (clos-slots-ref (fsc-instance-slots instance) - index) - +slot-unbound+))) - #'(lambda (instance) - (not (eq (clos-slots-ref (std-instance-slots instance) - index) - +slot-unbound+))))) - (cons #'(lambda (instance) - (declare (ignore instance)) - (not (eq (cdr index) +slot-unbound+))))) + (lambda (instance) + (not (eq (clos-slots-ref (fsc-instance-slots instance) + index) + +slot-unbound+))) + (lambda (instance) + (not (eq (clos-slots-ref (std-instance-slots instance) + index) + +slot-unbound+))))) + (cons (lambda (instance) + (declare (ignore instance)) + (not (eq (cdr index) +slot-unbound+))))) `(boundp ,slot-name))) (defun make-optimized-structure-slot-value-using-class-method-function (function) @@ -196,15 +195,15 @@ (defun make-optimized-structure-setf-slot-value-using-class-method-function (function) (declare (type function function)) - #'(lambda (nv class object slotd) - (declare (ignore class slotd)) - (funcall function nv object))) + (lambda (nv class object slotd) + (declare (ignore class slotd)) + (funcall function nv object))) (defun make-optimized-structure-slot-boundp-using-class-method-function (function) (declare (type function function)) - #'(lambda (class object slotd) - (declare (ignore class slotd)) - (not (eq (funcall function object) +slot-unbound+)))) + (lambda (class object slotd) + (declare (ignore class slotd)) + (not (eq (funcall function object) +slot-unbound+)))) (defun get-optimized-std-slot-value-using-class-method-function (class slotd @@ -300,7 +299,7 @@ (defun get-accessor-from-svuc-method-function (class slotd sdfun name) (macrolet ((emf-funcall (emf &rest args) `(invoke-effective-method-function ,emf nil ,@args))) - (set-function-name + (set-fun-name (case name (reader (lambda (instance) (emf-funcall sdfun class instance slotd))) @@ -311,7 +310,7 @@ `(,name ,(class-name class) ,(slot-definition-name slotd))))) (defun make-internal-reader-method-function (class-name slot-name) - (list* ':method-spec `(internal-reader-method ,class-name ,slot-name) + (list* :method-spec `(internal-reader-method ,class-name ,slot-name) (make-method-function (lambda (instance) (let ((wrapper (get-instance-wrapper-or-nil instance))) @@ -353,10 +352,10 @@ (instance-read-internal .pv. instance-slots 1 (slot-value instance slot-name)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(reader-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(reader-method ,class-name ,slot-name) initargs))) (defun make-std-writer-method-function (class-name slot-name) @@ -370,10 +369,10 @@ (instance-write-internal .pv. instance-slots 1 nv (setf (slot-value instance slot-name) nv)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list nil (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(writer-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(writer-method ,class-name ,slot-name) initargs))) (defun make-std-boundp-method-function (class-name slot-name) @@ -387,10 +386,10 @@ (instance-boundp-internal .pv. instance-slots 1 (slot-boundp instance slot-name)))))))) - (setf (getf (getf initargs ':plist) ':slot-name-lists) + (setf (getf (getf initargs :plist) :slot-name-lists) (list (list nil slot-name))) - (setf (getf (getf initargs ':plist) ':pv-table-symbol) pv-table-symbol) - (list* ':method-spec `(boundp-method ,class-name ,slot-name) + (setf (getf (getf initargs :plist) :pv-table-symbol) pv-table-symbol) + (list* :method-spec `(boundp-method ,class-name ,slot-name) initargs))) (defun initialize-internal-slot-gfs (slot-name &optional type)