James Long wrote:
Basically, my question is when do I need to use ___CAST on the argument variables? Is it something I should be doing most of the time for safety, to suppress warnings or for some other reason? Or is it something done in a special case I haven't encountered yet? I've seen it done in other gambit FFI's and I'm wondering if the other was just paranoid or something (and if I should be).
I don't see any reason to use such casts (if the types are already what you want).
___CAST is just a macro expanding to a C cast btw, I think Marc introduced it because it is easier to search for in the sources (for when you want to get rid of them or find insecure places).
I'm only using casts for hackery on the Gambit data types (e.g. treating pointers as fixnums), or turning the body of a homogenous vector which has been passed as scheme-object into a C vector (for using the C array access syntax) (e.g. (##c-code "char *foo= ___CAST(char*,___BODY(___ARG1)); .. foo[i]= ..." ...)).
Christian.