On 2006-maj-20, at 17:01, Lou Vanek wrote:
+++ cffi/src/early-types.lisp   2006-05-20 08:47:59.708847000 -0400
@@ -266,7 +266,10 @@

 (defmethod canonicalize ((type foreign-type-alias))
   "Return the built-in type keyword for TYPE."
-  (canonicalize (actual-type type)))
+  (let ((atype (actual-type type)))
+         (if (null atype)
+               (format *standard-error* "WARNING! null base-type.")
+               (canonicalize atype))))

I'll probably put an (assert (not (null (actual-type type)))) there instead.

I don't think you want an assert here.

I think I do, because (canonicalize nil) will signal an error anyway as mentioned in the subject.


-(cffi::define-type-spec-parser uffi-array (element-type count)
+(cffi::define-type-spec-parser uffi-array (element-type &optional count)
[...]
What's the rationale behind this change? I'm guessing it has something to do with def-array-pointer, but I think there's more to it.

This change was necessary for those times when you don't know how large the array is going to be. Specifically, for this line in mysql- api.lisp:

(uffi:def-array-pointer mysql-row (* :unsigned-char))

Right. Looking at some code, it seems that UFFI's undocumented array type is in fact meant to work as (:array element-type &optional (count 1)).


I like the idea of putting in in uffi-compat since I would notice
it there because that's one of the first places I would look for it.
But I would mention this in the README, as well.

uffi-compat should have its own chapter in the manual, definitely. That's in the TODO list.

--
Luís Oliveira
http://student.dei.uc.pt/~lmoliv/


_______________________________________________
cffi-devel mailing list
cffi-devel@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel

Reply via email to