On Sat, 24 Mar 2007 08:55:00 -0400, "Andrei Stebakov" <lispercat@gmail.com> wrote:
Looks like the value from (session-value) is BASE-STRING, and what the draw-freetype-string is looking for SIMPLE-BASE-STRING. Actually I setf the session value from the html form combo-box values. I wonder what can I do to make it right? Get latest FFI?
You mean UFFI? I think this is not a problem of UFFI but rather a limitation of SBCL: CL-USER> (sb-alien:define-alien-routine "strlen" sb-alien:int (str (sb-alien:c-string :external-format :latin-1))) STRLEN CL-USER> (defun make-foo (&key (simplep t)) (let ((array (make-array 3 :element-type 'character :initial-contents '(#\f #\o #\o) :fill-pointer (not simplep)))) array)) MAKE-FOO CL-USER> (typep (make-foo) 'simple-string) T CL-USER> (typep (make-foo :simplep nil) 'simple-string) NIL CL-USER> (strlen (make-foo)) 3 CL-USER> (strlen (make-foo :simplep nil)) ;; you'll get the same error here You might want to ask on the SBCL mailing list if this is expected behaviour if you want to pursue this further. HTH, Edi.