"Andy Chambers" <[EMAIL PROTECTED]> writes: > (value :string) > (len :int) > ;; not really an int but cffi takes care of this for us > (destructor :int)) > > Everything is pretty straightforward apart from the last two > parameters. Length is supposed to be the length of the value being > passed in (or -1 if the value is null terminated). > The destructor is supposed to be a function that frees the memory > required by `value' after sqlite is finished with it. For destructor, > you can use the special value 0 if the memory > is in "unmanaged" space. So I have a few questions... > > 1. If you specify the type as :string, does cffi pass it through as a > null terminated string?
Yes. > 2. Does cffi take care of freeing a string once the C library is > finished with it or should I define a callback to use for the > destructor. The semantics described in http://common-lisp.net/project/cffi/manual/html_node/Tutorial_002dMemory.html are still accurate. So the answer is "just what does `once the C library is finished with it' mean anyway?" > 3. With my current code, I'm not getting any memory errors but I am > getting weird values in the database. > > ˆ|Ñø·Ñø·IBUTE|ˆ|˜Â'ø|ˆ|˜Â'ø|Ñø·Ñø·IBUTE|| > > Any ideas what's going on here? See footnote ¹ on the page I linked above. -- I write stuff at http://failex.blogspot.com/ now. But the post formatter and themes are terrible for sharing code, the primary content, so it might go away sooner or later. _______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel