[racket] scheme_make_vector gc macros

From: gabor papp (gabor.lists at mndl.hu)
Date: Sat Jan 1 11:05:00 EST 2011

> Assuming that `src' never refers to GCable memory, this looks fine. You
> don't really need to register `tmp', but it's ok to do so.
Thank you. 'src' does not refer to GCable memory, which i think is not 
the case in the opposite direction when we are receiving vectors from 
scheme. Should this be done differently?

void FloatsFromScheme(Scheme_Object *src, float *dst, unsigned int size)
{
     MZ_GC_DECL_REG(1);
     MZ_GC_VAR_IN_REG(0, src);
     MZ_GC_REG();
     assert(size<=(unsigned int)SCHEME_VEC_SIZE(src));
     for (unsigned int n=0; n<size; n++)
     {
         dst[n]=scheme_real_to_double(SCHEME_VEC_ELS(src)[n]);
     }
     MZ_GC_UNREG();
}
> leak, it may be helpful to build Racket with `--enable-backtrace' and
> use `dump-memory-stats' to get all the paths to a particular kind of
Thanks for the suggestion. I'm going to try that,

Best,
Gabor


Posted on the users mailing list.