diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-03-19 01:17:52 +0100 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2008-03-19 01:17:52 +0100 |
commit | 65f8d8bf8e9a709e549917837f7c01a31aad3928 (patch) | |
tree | 8d7c0b7a5833f6391dac7aac8791bc1071f22422 /Lisp/method-definition.lisp | |
parent | b2f4979a6b17a0a2c67c67c9c6d3c83a90b228af (diff) |
Make TYPESPEC a struct type.
darcs-hash:e915984995e05d399993c4d602a7c4949053ca66
Diffstat (limited to 'Lisp/method-definition.lisp')
-rw-r--r-- | Lisp/method-definition.lisp | 7 |
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 |