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]

[BC] Patch: FYI: GC fixlet


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);
 	    }
 	}
 


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