From e2616df02fae589e0dd1e15fa7a7e44f1469d0ec Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Wed, 9 Nov 2005 15:54:02 +0000 Subject: [PATCH] 0.9.6.37: Do the CHANGE-CLASS checking for funcallable-standard-objects too. --- src/pcl/std-class.lisp | 13 +++++++++++++ version.lisp-expr | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 9952a16..4caecc6 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -1473,6 +1473,19 @@ (defmethod change-class ((instance funcallable-standard-object) (new-class funcallable-standard-class) &rest initargs) + (let ((cpl (class-precedence-list new-class))) + (dolist (class cpl) + (macrolet + ((frob (class-name) + `(when (eq class (find-class ',class-name)) + (error 'metaobject-initialization-violation + :format-control "~@" + :format-arguments (list 'change-class ',class-name) + :references (list '(:amop :initialization ,class-name)))))) + (frob class) + (frob generic-function) + (frob method) + (frob slot-definition)))) (change-class-internal instance new-class initargs)) (defmethod change-class ((instance standard-object) diff --git a/version.lisp-expr b/version.lisp-expr index 7914857..cdd8eaf 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.9.6.36" +"0.9.6.37" -- 1.7.10.4