X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src-main%2Fprimitives.cl;h=08ef00b6fd8b7fa5c7d467740a69a849d3769648;hb=9b994f7d44e02938af12bdcc62f2c4fddfd0afd0;hp=6fe54ba1d7e918f4a6401e190263aa2a36f4685c;hpb=0eaed82d93e9d2afbdcbdb8b49b0fc2386f86963;p=uffi.git diff --git a/src-main/primitives.cl b/src-main/primitives.cl index 6fe54ba..08ef00b 100644 --- a/src-main/primitives.cl +++ b/src-main/primitives.cl @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: primitives.cl,v 1.1 2002/09/16 17:54:30 kevin Exp $ +;;;; $Id: primitives.cl,v 1.3 2002/09/30 02:45:24 kevin Exp $ ;;;; ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -188,11 +188,19 @@ supports takes advantage of this optimization." (basic-convert-from-uffi-type :cstring-returning)) (t (basic-convert-from-uffi-type type))) - (cons (convert-from-uffi-type (first type) context) - (convert-from-uffi-type (rest type) context)))) - - - - - + (let ((sub-type (car type))) + (case sub-type + (cl:quote + (convert-from-uffi-type (cadr type) context)) + (:struct-pointer + #+openmcl `(:* (:struct ,(convert-from-uffi-type (cadr type) :struct))) + #-openmcl (convert-from-uffi-type (list '* (cadr type)) :struct) + ) + (:struct + #+openmcl `(:struct ,(convert-from-uffi-type (cadr type) :struct)) + #-openmcl (convert-from-uffi-type (cadr type) :struct) + ) + (t + (cons (convert-from-uffi-type (first type) context) + (convert-from-uffi-type (rest type) context)))))))