summaryrefslogtreecommitdiff
path: root/Lisp/method-definition.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2008-03-19 01:17:52 +0100
committerMatthias Benkard <code@mail.matthias.benkard.de>2008-03-19 01:17:52 +0100
commit65f8d8bf8e9a709e549917837f7c01a31aad3928 (patch)
tree8d7c0b7a5833f6391dac7aac8791bc1071f22422 /Lisp/method-definition.lisp
parentb2f4979a6b17a0a2c67c67c9c6d3c83a90b228af (diff)
Make TYPESPEC a struct type.
darcs-hash:e915984995e05d399993c4d602a7c4949053ca66
Diffstat (limited to 'Lisp/method-definition.lisp')
-rw-r--r--Lisp/method-definition.lisp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Lisp/method-definition.lisp b/Lisp/method-definition.lisp
index ad3b45a..377247e 100644
--- a/Lisp/method-definition.lisp
+++ b/Lisp/method-definition.lisp
@@ -407,7 +407,7 @@ __define-objective-c-generic-function__.
(method-name (generic-function-name->selector
(generic-function-name gf)))
(registered-p (foreign-class-registered-p class))
- (return-type (method-return-type method))
+ (return-type (typespec (method-return-type method)))
(method-argument-types (method-argument-types method))
(argument-types (list* (first method-argument-types)
:selector
@@ -421,9 +421,10 @@ __define-objective-c-generic-function__.
(gensym "ARG"))
argument-types)))
(eval (loop for type in argument-types
+ for typespec = (typespec type)
for symbol in arg-symbols
- collect (list symbol (typespec->c-type type)) into cffi-lambda-list
- if (member (typespec-primary-type type) '(:id :class :selector))
+ 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)
into arguments
else