diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-03-06 21:48:10 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-03-06 21:48:10 +0100 |
commit | 6ffe476ad4c840a00f0c2e72c6020091e3ce801d (patch) | |
tree | 13103aea32eb418eae19830cf47998f47479c840 /Lisp/method-definition.lisp | |
parent | abc0f3b7fc0332dee5382f165d9531d05ddf41b6 (diff) |
Refactor data conversion.
darcs-hash:9ff52b1ed764ab58522070fc35eca4ab97844a1c
Diffstat (limited to 'Lisp/method-definition.lisp')
-rw-r--r-- | Lisp/method-definition.lisp | 7 |
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 |