From e3fe1d2cfe41c6b6d7d661cbcc5da620fd6e398c Mon Sep 17 00:00:00 2001
From: pmai <pmai>
Date: Sun, 23 Sep 2001 19:02:12 +0000
Subject: [PATCH] Fixes a bug in short-method-combination handling reported on
 cmucl-help:  The optional order argument to method combinations defined by
 the short form of define-method-combination was being quietly ignored,
 resulting in the default :most-specific-first behaviour, even if
 :most-specific-last was specified.  This fix makes it respect the specified
 order.

---
 pcl/defcombin.lisp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/pcl/defcombin.lisp b/pcl/defcombin.lisp
index c89fbe6c3..8d6b7bc6d 100644
--- a/pcl/defcombin.lisp
+++ b/pcl/defcombin.lisp
@@ -26,7 +26,7 @@
 ;;;
 
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.11 2001/04/25 21:44:51 pmai Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.12 2001/09/23 19:02:12 pmai Exp $")
 ;;;
 
 (in-package :pcl)
@@ -171,6 +171,7 @@
   (let ((type (method-combination-type combin))
 	(operator (short-combination-operator combin))
 	(ioa (short-combination-identity-with-one-argument combin))
+	(order (car (method-combination-options combin)))
 	(around ())
 	(primary ()))
     (dolist (m applicable-methods)
@@ -194,8 +195,9 @@
 		 (push m primary))
 		(t
 		 (lose m "has an illegal qualifier"))))))
-    (setq around (nreverse around)
-	  primary (nreverse primary))
+    (setq around (nreverse around))
+    (unless (eq order :most-specific-last)
+      (setq primary (nreverse primary)))
     (let ((main-method
 	    (if (and (null (cdr primary))
 		     (not (null ioa)))
-- 
GitLab