diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-09-17 21:43:03 +0200 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-09-17 21:43:03 +0200 |
commit | c011b6b9863920f05a44ef3411010e1062388527 (patch) | |
tree | 671ced24df05f3b18476d765444121a44ab524b3 | |
parent | 1bd58fa0e733f1137c2fc46d61bb9faf41551813 (diff) |
PRIMITIVE-INVOKE: Don't break upon invocations with a void return type.
darcs-hash:85d12638eaa8b5a775a9f347b30e0b733c6dfd52
-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 29c6d63..bb6282f 100644 --- a/Lisp/method-invocation.lisp +++ b/Lisp/method-invocation.lisp @@ -210,7 +210,9 @@ Returns: *result* --- the return value of the method invocation. (the fixnum (length args))) (objc-arg-ptrs '(:pointer :void) real-argc) - (return-value-cell return-c-type) + (return-value-cell (if (eq return-c-type :void) + :int + return-c-type)) (objc-arg-buffer +pessimistic-allocation-type+ real-argc)) (dotimes (i real-argc) @@ -268,6 +270,7 @@ Returns: *result* --- the return value of the method invocation. (make-instance return-type :pointer (cffi:mem-ref return-value-cell return-c-type)))) + ((:void) (values)) (otherwise (cffi:mem-ref return-value-cell return-c-type))))))))))) |