[plt-scheme] Re: scheme_weak_reference and MZ_PRECISE_GC
On Tue, 9 Sep 2008 05:23:59 -0600 Matthew Flatt wrote:
> At Tue, 09 Sep 2008 10:57:01 +0200, David Hansen wrote:
>> what's the alternative to scheme_weak_reference() if MZ_PRECISE_GC is
>> defined? Shall I use a finalizer and the fixup callback? And how would
>> I use the fixup callback?
>
> You can use scheme_make_weak_box() with both 3m and CGC.
Hmm, but that gives me another Scheme_Object*. Now I need something to
weak ref that ;-)
OK, I could scheme_dont_gc_ptr() the weak box and scheme_gc_ptr_ok() the
box in a finalizer of the value the box holds. But this sounds a bit
complicated.
I want to keep track of Scheme_Object*s of a custom tagged type. Can I
do that from the fixup callback I pass to GC_register_traversers()?
If so, how? The documentation is a bit dense there. In case the object
moved, how do I get the old and new Scheme_Object*?
David