[armedbear-cvs] r13997 - trunk/abcl/src/org/armedbear/lisp

rschlatte at common-lisp.net rschlatte at common-lisp.net
Sun Jul 8 15:30:34 UTC 2012


Author: rschlatte
Date: Sun Jul  8 08:30:33 2012
New Revision: 13997

Log:
Fix fast-function optimization when only standard method function is given.

- This was the last error / missing feature exposed by the MOP test suite.

Modified:
   trunk/abcl/src/org/armedbear/lisp/clos.lisp

Modified: trunk/abcl/src/org/armedbear/lisp/clos.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/clos.lisp	Sun Jul  8 03:57:21 2012	(r13996)
+++ trunk/abcl/src/org/armedbear/lisp/clos.lisp	Sun Jul  8 08:30:33 2012	(r13997)
@@ -2099,11 +2099,11 @@
              ((= number-required 1)
               (cond
                 ((and (eq (method-combination-name (sys:%generic-function-method-combination gf)) 'standard)
-                      (= (length (sys:%generic-function-methods gf)) 1))
+                      (= (length (sys:%generic-function-methods gf)) 1)
+                      (std-method-fast-function (%car (sys:%generic-function-methods gf))))
                  (let* ((method (%car (sys:%generic-function-methods gf)))
                         (specializer (car (std-method-specializers method)))
-                        (function (or (std-method-fast-function method)
-                                      (std-method-function method))))
+                        (function (std-method-fast-function method)))
                    (if (typep specializer 'eql-specializer)
                        (let ((specializer-object (eql-specializer-object specializer)))
                          #'(lambda (arg)




More information about the armedbear-cvs mailing list