summaryrefslogtreecommitdiff
path: root/Lisp/method-definition.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'Lisp/method-definition.lisp')
-rw-r--r--Lisp/method-definition.lisp7
1 files changed, 3 insertions, 4 deletions
diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp
index cd32600..7218f48 100644
--- a/Lisp/method-definition.lisp
+++ b/Lisp/method-definition.lisp
@@ -404,13 +404,12 @@ __define-objective-c-generic-function__.
,@arguments))
(format t "~&~A" (list ,@arg-symbols)))
(unwind-protect
- (,(case (typespec-primary-type return-type)
- ((:id :class :selector) 'pointer)
- (t 'progn))
+ (coerce-object
(,(generic-function-name gf)
;; Leave the second argument (the
;; selector) out.
- ,@(list* (car arguments) (cddr arguments))))
+ ,@(list* (car arguments) (cddr arguments)))
+ ',return-type)
;; FIXME: We may want to wrap signalled
;; SERIOUS-CONDITIONS in some kind of
;; Objective-C exception object and put