On May 12, 2006, at 4:52 PM, Marc Feeley wrote:
If you know the GC will never be called in the C function or you don't care about safety, you could use the following approach. There is a macro ___BODY(obj) defined in include/gambit.h which returns a pointer to the body of any memory allocated object. In the case of vectors, it is a pointer to the first element. So you could write:
(define rdft (c-lambda (long long scheme-object scheme-object scheme-object) void "rdft(___arg1, ___arg2, (double*)___BODY(___arg3), (long*)___BODY(___arg4), (double*)___BODY(___arg5));"))
If the C code doesn't call back into Scheme then the gc can't be triggered, right?
Brad