Леонид Новиков ln@bk.ru writes:
This patch accelerates work with array
Hi, I suspect the following patch will be even faster (though I don't have any numbers, do you?). Do let me know if it works for you.
diff -rN -u cffi-luis-old/uffi-compat/uffi-compat.lisp cffi-luis-new/uffi-compat/uffi-compat.lisp --- cffi-luis-old/uffi-compat/uffi-compat.lisp 2005-12-14 11:02:44.000000000 +0000 +++ cffi-luis-new/uffi-compat/uffi-compat.lisp 2005-12-21 12:00:02.000000000 +0000 @@ -236,9 +236,12 @@
(defmacro deref-array (array type position) "Dereference an array." - `(cffi:mem-aref ,array (element-type - (cffi::parse-type - (convert-uffi-type ,type))) + `(cffi:mem-aref ,array + ,(if (constantp type) + `',(element-type (cffi::parse-type + (convert-uffi-type (eval type)))) + `(element-type (cffi::parse-type + (convert-uffi-type ,type)))) ,position))
;; UFFI's documentation on DEF-UNION is a bit scarce, I'm not sure