diff --git a/pcl/braid.lisp b/pcl/braid.lisp index 3684dea55540d79e063737fe3841130f01fc020a..ba7e99e0e61e157c61205e8cbd05450670d32b66 100644 --- a/pcl/braid.lisp +++ b/pcl/braid.lisp @@ -25,7 +25,7 @@ ;;; ************************************************************************* (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/braid.lisp,v 1.39 2003/05/13 10:16:59 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/braid.lisp,v 1.40 2003/05/13 10:49:01 gerd Exp $") ;;; ;;; Bootstrapping the meta-braid. @@ -548,7 +548,8 @@ (let ((form-or-fn (conditions::condition-slot-initform slot))) (if (functionp form-or-fn) `(:initfunction ,form-or-fn) - `(:initform ,form-or-fn)))) + `(:initform ,form-or-fn + :initfunction ,(lambda () form-or-fn))))) :allocation ,(conditions::condition-slot-allocation slot) :documentation ,(conditions::condition-slot-documentation slot)))) (cond ((structure-type-p name) diff --git a/pcl/ctor.lisp b/pcl/ctor.lisp index 96234d8ed6b6214efaea5f922943a1e7254c629c..1e16202a2c46d5e14ddf7b0637bd79e905897ea8 100644 --- a/pcl/ctor.lisp +++ b/pcl/ctor.lisp @@ -46,7 +46,7 @@ ;;; is called. (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/ctor.lisp,v 1.11 2003/05/13 10:16:59 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/ctor.lisp,v 1.12 2003/05/13 10:49:01 gerd Exp $") (in-package "PCL") @@ -286,7 +286,8 @@ ;; MAKE-INSTANCE and/or ALLOCATE-INSTANCE, these will show up ;; together with the system-defined ones in what ;; COMPUTE-APPLICABLE-METHODS returns. - (or (and (null (cdr make-instance-methods)) + (or (and (not (condition-class-p class)) + (null (cdr make-instance-methods)) (null (cdr allocate-instance-methods)) (null (check-initargs class (plist-keys (ctor-initargs ctor)) (append ii-methods si-methods) nil nil)) diff --git a/pcl/slots.lisp b/pcl/slots.lisp index bdad9c7dd0a2bda6e89929ed96d79f5feff739b7..ff888467a152a284e7bbd2a204d5c03a6c47939a 100644 --- a/pcl/slots.lisp +++ b/pcl/slots.lisp @@ -26,7 +26,7 @@ ;;; (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/slots.lisp,v 1.23 2003/05/11 11:30:34 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/slots.lisp,v 1.24 2003/05/13 10:49:01 gerd Exp $") ;;; (in-package :pcl) @@ -338,3 +338,6 @@ (error "~@<Can't allocate an instance of class ~S.~@:>" (class-name class))))) +(defmethod allocate-instance ((class condition-class) &rest initargs &key) + (declare (ignore initargs)) + (make-condition (class-name class)))