X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fprimitives.lisp;h=26737bdce30205db01bcb2bee0eab4a6fa27ff67;hb=ac9eafca18c6a684c2a7ed3c353c5eeac3456849;hp=c430894f711922ace55c007c5e25b1e660128575;hpb=1bcafc58d13681d25f0576eabb33f9232dd373ae;p=uffi.git diff --git a/src/primitives.lisp b/src/primitives.lisp index c430894..26737bd 100644 --- a/src/primitives.lisp +++ b/src/primitives.lisp @@ -277,6 +277,15 @@ supports takes advantage of this optimization." (let ((result (%convert-from-uffi-type type context))) (cond ((atom result) result) + ;; Arrays without size are really pointers to type on SBCL/CMUCL + #+sbcl + ((and (consp type) (= 2 (length type)) (eq :array (car type))) + (setf (car result) 'sb-alien:*) + result) + #+cmu + ((and (consp type) (= 2 (length type)) (eq :array (car type))) + (setf (car result) 'alien:*) + result) #+openmcl ((eq (car result) :address) (if (eq context :struct)