"Hans" == Hans Boehm <Hans.Boehm@hp.com> writes:
I looked at this today. We can't scan Class using a bitmap descriptor
yet, because its layout is wrong for this. The descriptor overflows
and we have to fall back to procedural scanning.
Hans> Just to be clear, since I'm not quite sure I understand what
Hans> you're saying here: I don't think it's the mark procedure per se
Hans> that's the problem. The issue is having a mark procedure that
Hans> walks complicated data structures and traces those instead of
Hans> just pushing directly referenced objects.
I was interested in removing the mark procedure for Class objects, but
that isn't possible on 32 bit systems -- our choices are continue to
mark them procedurally, or mark them conservatively.
But, yeah, part of my patch is to allocate things that are pointed to
by Class such that they are scanned themselves and don't require
special treatment in the procedural scanner. This will remove the
ugly/fragile/problematic code.