diff --git a/pcl/boot.lisp b/pcl/boot.lisp index 1f1e872fb9c4715270318338cacea36d4429d440..65927d8e9fa96f10b6740b28200885548f66fe71 100644 --- a/pcl/boot.lisp +++ b/pcl/boot.lisp @@ -25,7 +25,7 @@ ;;; ************************************************************************* (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.62 2003/05/28 10:41:47 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/boot.lisp,v 1.63 2003/05/30 09:14:34 gerd Exp $") (in-package :pcl) @@ -1139,7 +1139,6 @@ work during bootstrapping. (val method-function key) (setf (getf (method-function-plist method-function) key) val)) - (defun method-function-pv-table (method-function) (method-function-get method-function :pv-table)) @@ -1149,6 +1148,16 @@ work during bootstrapping. (defun method-function-needs-next-methods-p (method-function) (method-function-get method-function :needs-next-methods-p t)) +;;; +;;; Return a method function name of METHOD. If FAST-FUNCTION +;;; is true, return the fast method function name, otherwise +;;; return the slow method function name. +;;; +(defun method-function-name (method &optional (fast-function t)) + (let ((fn (slot-value method + (if fast-function 'fast-function 'function)))) + (assert (functionp fn)) + (method-function-get fn :name))) (defun load-defmethod (class name quals specls ll initargs diff --git a/pcl/combin.lisp b/pcl/combin.lisp index 5a12fbd3be84223be2fb2b864c7f9b9946db3921..e6ae26529d7a8175930c2167cfe41e477225f1ba 100644 --- a/pcl/combin.lisp +++ b/pcl/combin.lisp @@ -25,7 +25,7 @@ ;;; ************************************************************************* (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/combin.lisp,v 1.17 2003/05/28 10:41:47 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/combin.lisp,v 1.18 2003/05/30 09:14:34 gerd Exp $") (in-package "PCL") @@ -466,17 +466,6 @@ ,@check-applicable-keywords ,body)))))) -;;; -;;; Return a method function name of METHOD. If FAST-FUNCTION -;;; is true, return the fast method function name, otherwise -;;; return the slow method function name. -;;; -(defun method-function-name (method &optional (fast-function t)) - (let ((name (nth-value 2 (parse-method-or-spec method)))) - (if fast-function - (cons 'fast-method (cdr name)) - name))) - ;;; ;;; Return a form for calling METHOD's fast function. METATYPES is a ;;; list of metatypes, whose length is used to figure out the names of @@ -500,11 +489,11 @@ ;;; variable containing a list of FAST-METHOD-CALL structures ;;; corresponding to the method function calls. ;;; -(defun make-direct-calls (methods metatypes apply? list-var) +(defun make-direct-calls (methods metatypes rest? list-var) (collect ((calls)) (dolist (method methods) (calls `(let ((.call. (pop .list.))) - ,(make-direct-call method metatypes apply? '.call.)))) + ,(make-direct-call method metatypes rest? '.call.)))) `(let ((.list. ,list-var)) (declare (ignorable .list.)) ,@(calls))))