This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[BC] Patch: FYI: GC fixlet
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 04 Oct 2004 12:55:33 -0600
- Subject: [BC] Patch: FYI: GC fixlet
- Reply-to: tromey at redhat dot com
I'm checking this in on the BC branch.
This properly indicates the base pointer when marking the IDT.
I believe this isn't necessary for correctness, as according to the
documentation the base pointer is only used for debugging. Still, it
is nice to have it be correct.
Note also that the IDT still isn't allocated via the GC, as doing
this causes crashes. There's still some lurking bug somewhere. This
is on the list of things to fix...
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* boehm.cc (_Jv_MarkObj): Correctly indicate base pointer when
marking IDT.
Index: boehm.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/boehm.cc,v
retrieving revision 1.42.12.4
diff -u -r1.42.12.4 boehm.cc
--- boehm.cc 14 Sep 2004 23:28:11 -0000 1.42.12.4
+++ boehm.cc 4 Oct 2004 18:54:22 -0000
@@ -215,13 +215,13 @@
if (c->isInterface())
{
p = (ptr_t) c->idt->iface.ioffsets;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c);
+ MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c->idt);
}
else if (! c->isPrimitive())
{
// This field is only valid for ordinary classes.
p = (ptr_t) c->idt->cls.itable;
- MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c);
+ MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c->idt);
}
}