diff options
-rw-r--r-- | Lisp/method-invocation.lisp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Lisp/method-invocation.lisp b/Lisp/method-invocation.lisp index d851f63..40d1d5d 100644 --- a/Lisp/method-invocation.lisp +++ b/Lisp/method-invocation.lisp @@ -303,7 +303,7 @@ Returns: *result* --- the return value of the method invocation. (defun typespec->c-type (typespec) (case (car typespec) - ((:pointer struct union id objc-class exception array) :pointer) + ((:pointer struct union id objc-class exception array selector) :pointer) ((:string) :string) (otherwise (car typespec)))) @@ -345,6 +345,9 @@ Returns: *result* --- the return value of the method invocation. (setf (argref :pointer i) arg)) ((id objc-class exception) (setf (argref :pointer i) (pointer-to arg))) + ((selector) + (ctypecase arg + (selector (setf (argref :pointer i) (pointer-to arg))))) (:string (setf (argref :string i) (alloc-string-and-register arg))) |