X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fslots-boot.lisp;h=43bf09ae619e5a43a4032d662152a11914714b64;hb=f8893c7c658bf9d9e0757c63e47af2fdea810f04;hp=a283337d2951371ca1074a83d2fd1dff0d4019c3;hpb=a53deb94a224bc903d00a5075acf562488cab06a;p=sbcl.git diff --git a/src/pcl/slots-boot.lisp b/src/pcl/slots-boot.lisp index a283337..43bf09a 100644 --- a/src/pcl/slots-boot.lisp +++ b/src/pcl/slots-boot.lisp @@ -469,15 +469,16 @@ initargs))) (defun initialize-internal-slot-gfs (slot-name &optional type) - (macrolet ((frob (type name-fun add-fun) + (macrolet ((frob (type name-fun add-fun ll) `(when (or (null type) (eq type ',type)) (let* ((name (,name-fun slot-name)) - (gf (ensure-generic-function name)) + (gf (ensure-generic-function name + :lambda-list ',ll)) (methods (generic-function-methods gf))) (when (or (null methods) (plist-value gf 'slot-missing-method)) (setf (plist-value gf 'slot-missing-method) nil) (,add-fun *the-class-slot-object* gf slot-name)))))) - (frob reader slot-reader-name add-reader-method) - (frob writer slot-writer-name add-writer-method) - (frob boundp slot-boundp-name add-boundp-method))) + (frob reader slot-reader-name add-reader-method (object)) + (frob writer slot-writer-name add-writer-method (new-value object)) + (frob boundp slot-boundp-name add-boundp-method (object))))