From: Chris Hanson Date: Thu, 12 Jun 1997 07:33:58 +0000 (+0000) Subject: Fix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated X-Git-Tag: 20090517-FFI~5143 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=f117a9ee89bee88da009cf46e9a1df0d372a4bd3;p=mit-scheme.git Fix bug: when CALL-NEXT-METHOD used in DEFINE-METHOD, the generated code was using old calling conventions. --- diff --git a/v7/src/sos/macros.scm b/v7/src/sos/macros.scm index 996b24cd5..4f79585c3 100644 --- a/v7/src/sos/macros.scm +++ b/v7/src/sos/macros.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Id: macros.scm,v 1.3 1997/06/11 07:45:04 cph Exp $ +;;; $Id: macros.scm,v 1.4 1997/06/12 07:33:58 cph Exp $ ;;; ;;; Copyright (c) 1993-97 Massachusetts Institute of Technology ;;; @@ -298,15 +298,11 @@ (lambda () (call-with-values (lambda () (call-next-method-used? body)) (lambda (body used?) - `(,(if used? 'MAKE-CHAINED-METHOD 'MAKE-METHOD) - (LIST ,@specializers) - ,(make-named-lambda name - (if used? - (cons 'CALL-NEXT-METHOD required) - required) - optional - rest - body))))))) + (let ((s `(LIST ,@specializers)) + (l (make-named-lambda name required optional rest body))) + (if used? + `(MAKE-CHAINED-METHOD ,s (LAMBDA (CALL-NEXT-METHOD) ,l)) + `(MAKE-METHOD ,s ,l)))))))) (if (and (null? optional) (not rest) (not (eq? ' (car specializers))))