X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Finit.lisp;h=40a922a15d482c21d5c0953159b83adae2135883;hb=1af3faa2b79125b774c2182cab841ed7ee555bed;hp=ee7e2e397872eca36099b35252937e2b18ce797d;hpb=b305d276b905654e4877cc49d03a2d3c9187cdff;p=sbcl.git diff --git a/src/pcl/init.lisp b/src/pcl/init.lisp index ee7e2e3..40a922a 100644 --- a/src/pcl/init.lisp +++ b/src/pcl/init.lisp @@ -52,9 +52,9 @@ (defmethod default-initargs ((class slot-class) supplied-initargs class-default-initargs) - (loop for (key fn) in class-default-initargs + (loop for (key nil fun) in class-default-initargs when (eq (getf supplied-initargs key '.not-there.) '.not-there.) - append (list key (funcall fn)) into default-initargs + append (list key (funcall fun)) into default-initargs finally (return (append supplied-initargs default-initargs)))) @@ -123,8 +123,8 @@ (let ((initfn (slot-definition-initfunction slotd))) (when initfn (funcall initfn))))) - (unless (or (slot-boundp-using-class class instance slotd) - (null (slot-definition-initfunction slotd))) + (unless (or (null (slot-definition-initfunction slotd)) + (slot-boundp-using-class class instance slotd)) (setf (slot-value-using-class class instance slotd) (funcall (slot-definition-initfunction slotd))))))) (let* ((class (class-of instance))