diff --git a/pcl/std-class.lisp b/pcl/std-class.lisp index 78df6671bbffe132e6a6856675ac7e1cdfc1885a..170e0900d6f17ecef60eaaee31cb5d89fa0e26c5 100644 --- a/pcl/std-class.lisp +++ b/pcl/std-class.lisp @@ -26,7 +26,7 @@ ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/std-class.lisp,v 1.27 2001/04/10 22:37:23 pw Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/std-class.lisp,v 1.28 2001/11/29 03:50:35 pmai Exp $") ;;; (in-package :pcl) @@ -363,7 +363,6 @@ (unsupplied (list 1)) (supplied-meta (getf initargs :metaclass unsupplied)) (supplied-supers (getf initargs :direct-superclasses unsupplied)) - (supplied-slots (getf initargs :direct-slots unsupplied)) (meta (cond ((neq supplied-meta unsupplied) (find-class supplied-meta)) @@ -383,14 +382,13 @@ :name s))))))) (loop (unless (remf initargs :metaclass) (return))) (loop (unless (remf initargs :direct-superclasses) (return))) - (loop (unless (remf initargs :direct-slots) (return))) (values meta - (list* :direct-superclasses - (and (neq supplied-supers unsupplied) - (mapcar #'fix-super supplied-supers)) - :direct-slots - (and (neq supplied-slots unsupplied) supplied-slots) - initargs))))) + (nconc + (when (neq supplied-supers unsupplied) + (list + :direct-superclasses + (mapcar #'fix-super supplied-supers))) + initargs))))) ;;; @@ -413,7 +411,8 @@ (direct-default-initargs nil direct-default-initargs-p) (predicate-name nil predicate-name-p)) (declare (ignore slot-names)) - (cond (direct-superclasses-p + (cond ((or direct-superclasses-p + (null (slot-value class 'direct-superclasses))) (setq direct-superclasses (or direct-superclasses (list (if (funcallable-standard-class-p class)