From b47191987bd7627cb72d17864b5675bc08a215c8 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 26 May 2003 17:12:43 +0000 Subject: [PATCH] .. original commit: e506836ab6bd23dc0f4f1d792d4bf7430cf3b905 --- collects/mzlib/delegate.ss | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/collects/mzlib/delegate.ss b/collects/mzlib/delegate.ss index 9af07cc..123081c 100644 --- a/collects/mzlib/delegate.ss +++ b/collects/mzlib/delegate.ss @@ -24,10 +24,10 @@ (define (make-empty-lambda-case spec) (syntax-case spec () - [(id ...) (syntax [(id ...) (void)])] + [(id ...) (syntax [(ths id ...) (void)])] [id (identifier? (syntax id)) - (syntax [name (void)])])) + (syntax [(ths . name) (void)])])) (define (make-overriding-method method-spec) (syntax-case method-spec () @@ -63,13 +63,13 @@ (syntax-case spec () [(id ...) (syntax [(id ...) (when delegate - (send delegate name id ...)) + (send delegate name this id ...)) (super-name id ...)])] [id (identifier? (syntax id)) (syntax [name (when delegate - (send delegate name . id)) + (send delegate name this . id)) (super-name . id)])])))) (syntax-case stx () @@ -93,8 +93,10 @@ (field [delegate #f]) (define/public (set-delegate d) (when delegate - (send delegate on-disable)) + (send delegate on-disable this)) (when d + (unless (object? d) + (error 'set-delegate "expected an object, got: ~e" d)) (let ([methods-to-impl '(on-enable on-disable ids ...)] [i (object-interface d)]) (for-each (lambda (x) @@ -102,7 +104,7 @@ (error 'set-delegate "expected object to implement an ~s method" x))) methods-to-impl)) (set! delegate d) - (send delegate on-enable))) + (send delegate on-enable this))) (define/public (get-delegate) delegate) overriding-methods ...