X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fvector.lisp;h=231ca8d1a711ecaa132c3acaaf1e84458e456a94;hb=69ef68ba7393e3492c1b4a756d1140f71c2922bc;hp=7403d3a45d9c2fe1bb3d9d83d2599dc89ca6e781;hpb=a14326d4e328c778cd292884099eee7d2c1b8d0f;p=sbcl.git diff --git a/src/pcl/vector.lisp b/src/pcl/vector.lisp index 7403d3a..231ca8d 100644 --- a/src/pcl/vector.lisp +++ b/src/pcl/vector.lisp @@ -1044,7 +1044,7 @@ (defun name-method-lambda (method-lambda) (let ((method-name (body-method-name (cddr method-lambda)))) (if method-name - `(named-lambda ,method-name ,(rest method-lambda)) + `(named-lambda (slow-method ,method-name) ,(rest method-lambda)) method-lambda))) (defun make-method-initargs-form-internal (method-lambda initargs env) @@ -1093,7 +1093,8 @@ :fast-function (,(if (body-method-name body) 'named-lambda 'lambda) ,@(when (body-method-name body) - (list (body-method-name body))) ; function name + ;; function name + (list (cons 'fast-method (body-method-name body)))) (.pv-cell. .next-method-call. ,@args+rest-arg) ; function args ;; body of the function (declare (ignorable .pv-cell. .next-method-call.)) @@ -1150,13 +1151,7 @@ (apply fmf pv-cell nmc (nconc args (list rest)))) (apply fmf pv-cell nmc method-args))))) (let* ((fname (method-function-get fmf :name)) - (name `(,(or (get (car fname) 'method-sym) - (setf (get (car fname) 'method-sym) - (let ((str (symbol-name (car fname)))) - (if (string= "FAST-" str :end2 5) - (format-symbol *pcl-package* (subseq str 5)) - (car fname))))) - ,@(cdr fname)))) + (name (cons 'slow-method (cdr fname)))) (set-fun-name method-function name)) (setf (method-function-get method-function :fast-function) fmf) method-function))