class gc
Tom Tromey
tromey@cygnus.com
Fri Feb 26 16:53:00 GMT 1999
Godmar> Either you'll need to check on the collector side that you
Godmar> don't mark anything you haven't allocated.
>> This is what we do right now. That's because the Boehm collector
>> is smart about this sort of thing, though -- not from any real
>> plan.
Godmar> What exactly do you mean by "smart"?
The Boehm GC knows which objects it allocated and which it did not.
Godmar> Are you referring to the possibility of using
Godmar> GC_make_descriptor for each class and have Boehm use a bitmap
Godmar> when walking a class?
We do precise marking of Java objects but we don't use the bitmap
method. Instead we make our own mark functions. See gc_mark.h in the
Boehm GC distribution.
Godmar> You do know not whether F.type points to a class object you
Godmar> can safely mark or not. How do you write the walk method for
Godmar> class F such that you don't mark `type' unless it's okay to do
Godmar> so? If the walk method uses Boehm's bitmap based descriptors,
Godmar> how would that work?
As I understand it, the Boehm GC `PUSH_CONTENTS' macro does sanity
checks to make sure you are actually passing it an object which it
allocated.
This is just one way we currently rely on the Boehm GC to work around
deficiencies in our compiler or runtime. Someday that will change.
Tom
More information about the Java
mailing list