[Gc] Marking memory as traceable
christian at gudrian.org
Tue Apr 20 00:34:20 PDT 2010
I'm using the collector on Windows with Embarcadero RAD Studio 2010 and
VCL applications. The VCL framework classes' memory is not traced by
the collector so whenever I put references to garbage collected memory
into such a class, I wrap the references in a struct which then gets
allocated by GC_malloc_uncollectable during construction and accordingly
freed during destruction.
Since that's a bit too cumbersome for me I would like to tell the
collector to trace a certain portion of memory for referenced object.
Initially I thought that what's GC_add_roots for, on Windows, however,
its counterpart GC_remove_roots is obviously not implemented. Hence I
would end up continually adding roots to the collector while being
unable to remove those which have become invalid.
Should I stick to using my traceable struct or is there a better way?
More information about the Gc