diff --git a/pcl/init.lisp b/pcl/init.lisp index 2f3a23d7b0a63fba629e4befeaeeac1176cc986b..7214d0b5ee89cbf09f61c98c04c68c4bb5cf614f 100644 --- a/pcl/init.lisp +++ b/pcl/init.lisp @@ -26,7 +26,7 @@ ;;; (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/init.lisp,v 1.22 2003/05/04 13:11:21 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/init.lisp,v 1.23 2003/05/09 15:19:19 gerd Exp $") ;;; ;;; This file defines the initialization and related protocols. @@ -160,18 +160,12 @@ (unless (null initfn) (setf (slot-value-using-class class instance slotd) (funcall initfn)))))))) - (let* ((class (class-of instance)) - (initfn-slotds - (loop for slotd in (class-slots class) - unless (initialize-slot-from-initarg class instance slotd) - collect slotd))) - (dolist (slotd initfn-slotds) - (if (eq (slot-definition-allocation slotd) :class) - (unless (slot-boundp-using-class class instance slotd) - (initialize-slot-from-initfunction class instance slotd)) - (when (or (eq t slot-names) - (memq (slot-definition-name slotd) slot-names)) - (initialize-slot-from-initfunction class instance slotd))))) + (let ((class (class-of instance))) + (dolist (slotd (class-slots class)) + (unless (initialize-slot-from-initarg class instance slotd) + (when (or (eq slot-names t) + (memq (slot-definition-name slotd) slot-names)) + (initialize-slot-from-initfunction class instance slotd))))) instance)))