On 2005-nov-15, at 15:34, James Bielman wrote:
Well, I don't see the point of using a separate translator for callback
return values versus setting foreign variables.  If I understand :TO-C
correctly, it is used when we have a Lisp value we need to convert to a
C value with indefinite extent, which is the situation in both those
cases.

Good point, that was the purpose of separating :TO-C from :TO-C-DYNAMIC.


The more I think about it, the more I like just specifying the built-in
type translators for aggregate objects (which is just :STRING, right?)
allocate their memory using malloc in the :TO-C case.  I can't see any
real good reason not to.

Right. Must not forget to document this well.


If I had an existing string I wanted to pass from a callback I would
just declare it to return :POINTER instead. (What happens if you return a pointer from a function with a result-type of :STRING? Should it pass
it unmodified or malloc a copy?)

Good question. My gut feeling is that it should be passed unmodified since if you're passing a pointer it probably means that you want to bypass the translator. But I'm not sure.

--
Luís Oliveira
http://student.dei.uc.pt/~lmoliv/
Equipa Portuguesa do Translation Project
http://www.iro.umontreal.ca/translation/registry.cgi?team=pt

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

Reply via email to