X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fobjects.cl;h=377a0779c5de864ec290a0119ca188086dc5c54d;hb=334e4fc54c9f7cbf3a3db584102d6108f9638ebe;hp=66d57cba64729afca7ba14b0dff6689409651995;hpb=2fb4bcbbd471fc9c20c1185fde41a3eea4d941d1;p=uffi.git diff --git a/src/objects.cl b/src/objects.cl index 66d57cb..377a077 100644 --- a/src/objects.cl +++ b/src/objects.cl @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Feb 2002 ;;;; -;;;; $Id: objects.cl,v 1.17 2002/04/06 19:53:08 kevin Exp $ +;;;; $Id: objects.cl,v 1.20 2002/07/10 02:26:32 kevin Exp $ ;;;; ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -27,14 +27,14 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated." #+cmu `(alien:make-alien ,(convert-from-uffi-type (eval type) :allocation)) #+lispworks - `(fli:allocate-foreign-object :type ,(convert-from-uffi-type type :allocate)) + `(fli:allocate-foreign-object :type ',(convert-from-uffi-type type :allocate)) #+allegro `(ff:allocate-fobject ,(convert-from-uffi-type type :allocate) :c)) (progn #+cmu `(alien:make-alien ,(convert-from-uffi-type (eval type) :allocation) ,size) #+lispworks - `(fli:allocate-foreign-object :type ,(convert-from-uffi-type type :allocate) :nelems ,size) + `(fli:allocate-foreign-object :type ',(convert-from-uffi-type type :allocate) :nelems ,size) #+allegro `(ff:allocate-fobject '(:array ,(convert-from-uffi-type (eval type) :allocate) ,(eval size)) :c) ) @@ -55,6 +55,13 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated." #+cmu `(alien:null-alien ,obj) ) +(defmacro size-of-foreign-type (type) + #+lispworks `(fli:size-of ,type) + #+allegro `(ff:sizeof-fobject ,type) + #+cmu `(alien:alien-size ,type) + #+clisp `(values (ffi:size-of ,type)) + ) + (defmacro make-null-pointer (type) #+(or allegro cmu) (declare (ignore type))