From 68c780f58249252ff21c297287d28a74ee876aa3 Mon Sep 17 00:00:00 2001 From: pmai <pmai> Date: Thu, 10 May 2001 21:28:41 +0000 Subject: [PATCH] Fixed buglet in the argument processing for the :METHOD-CLASS option to DEFGENERIC: ENSURE-GENERIC-FUNCTION-USING-CLASS failed to coerce the :METHOD-CLASS argument to a class object, as specified in the AMOP, page 187 (entry for ENSURE-GENERIC-FUNCTION-USING-CLASS). This caused GENERIC-FUNCTION-METHOD-CLASS to return the uncoerced class name (i.e. a symbol), instead of a class, which caused both PCL internal as well as external code to fail. --- pcl/boot.lisp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pcl/boot.lisp b/pcl/boot.lisp index 4ce5f1739..30f861ac4 100644 --- a/pcl/boot.lisp +++ b/pcl/boot.lisp @@ -26,7 +26,7 @@ ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.25 2001/04/10 22:37:21 pw Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.26 2001/05/10 21:28:41 pmai Exp $") (in-package :pcl) @@ -1615,7 +1615,10 @@ work during bootstrapping. (find-method-combination (class-prototype ,gf-class) (car combin) (cdr combin))))) - )) + (let ((method-class (getf ,all-keys :method-class '.shes-not-there.))) + (unless (eq method-class '.shes-not-there.) + (setf (getf ,all-keys :method-class) + (find-class method-class t ,env)))))) (defun real-ensure-gf-using-class--generic-function (existing -- GitLab