diff --git a/pcl/std-class.lisp b/pcl/std-class.lisp index 2bf7abb58edf25fa3b408f5b03c378b2d3a3fa3b..7afd3eea0f21faa9474823777501a84b52c4e282 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.54 2003/04/25 17:43:50 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/std-class.lisp,v 1.55 2003/04/26 17:35:08 gerd Exp $") (in-package :pcl) @@ -792,7 +792,11 @@ (defun update-cpl (class cpl) (if (class-finalized-p class) - (unless (equal (class-precedence-list class) cpl) + (unless (and (equal (class-precedence-list class) cpl) + (loop for c in cpl never + (loop for s in (class-direct-slots c) thereis + (eq (slot-definition-allocation s) + :class)))) ;; Need to have the cpl setup before update-lisp-class-layout ;; is called on CMUCL. (setf (slot-value class 'class-precedence-list) cpl)