summaryrefslogtreecommitdiff
path: root/Lisp/method-definition.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-12-04 21:16:51 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-12-04 21:16:51 +0100
commit03fd82e89b41bbeafa900be8581a3eb8d78c2758 (patch)
treefd862868b3c88e6c44915f6c87567e2b76489885 /Lisp/method-definition.lisp
parenteb9a722a75c7315da50844444717e2dcf6f069e4 (diff)
Minor cleanups and fixes.
darcs-hash:efd8243ff1432ed15009ab5d2088f7374d67ab97
Diffstat (limited to 'Lisp/method-definition.lisp')
-rw-r--r--Lisp/method-definition.lisp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp
index a000c49..c8ce0dd 100644
--- a/Lisp/method-definition.lisp
+++ b/Lisp/method-definition.lisp
@@ -463,9 +463,14 @@ __define-objective-c-generic-function__.
(eval (loop for type in argument-types
for typespec = (typespec type)
for symbol in arg-symbols
+ for first-arg-p = t then nil
collect (list symbol (typespec->c-type typespec)) into cffi-lambda-list
if (member (typespec-primary-type typespec) '(:id :class :selector))
- collect `(intern-pointer-wrapper ',type :pointer ,symbol)
+ collect `(coerce-object ,symbol ',type)
+ #+nil
+ `(intern-pointer-wrapper ',type
+ :pointer ,symbol
+ :skip-wrapper-unwrapping ,first-arg-p)
into arguments
else
collect symbol into arguments