This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: FYI: Linker & Verifier fixes (really GC mark procedures)


I haven't been following the details here, but some of the suggested
directions scare me a bit.

The present issue aside, I think we're in general far better off
allocating collectable memory for anything that interacts with the
collector, and making the mark descriptors conservative, and eventually
correct.  (If we know that fields will contain either small integers or
pointers, just allocating it as potentially pointer-containing would
also currently work fine.)  Certainly I think we should be moving in
that direction.

The code in _Jv_MarkObj that directly traces objects referenced from
class objects (instead of pushing them on the mark stack) is on very
thin ice.  That's not how mark procedures are supposed to work.  In my
opinion, if we could make it go away, that would be great.

In particular, in thinking about this again, I'm not sure this is
correct with incremental GC, and it may be causing some of the problems
there.  With incremental GC we may end up tracing only the subobjects,
since the containing object may not have been dirtied.  I think the
subobjects currently look pointer-free, which would cause this to fail.

Aside from this issue, _Jv_MarkObj seems to already have been a major
source of very subtle bugs.  I am more and more convinced that this is
just not the right design.

Hans


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]