Patch: New interface lookup, and inlining, Take 2

Alexandre Petit-Bianco apbianco@cygnus.com
Tue Feb 15 22:19:00 GMT 2000


Bryce McKinlay writes:
> Tom Tromey wrote:
> 
> > I'd really like to get this code in.
> > But doesn't changing the size of Class in libgcj but not in gcj cause
> > problems?  It seems to me that the new code could overwrite whatever
> > happens to be just after gcj-generated Class objects.
> 
> Good point. I must admit I didn't actually try it ;-)
> 
> regards
> 
>   [ bryce ]

Yes. I don't think gcj needs to be aware of the internal structure of
the _Jv_IDispatchTable union, something like that should be enough...

./A

Index: decl.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/java/decl.c,v
retrieving revision 1.46
diff -u -p -r1.46 decl.c
--- decl.c      2000/02/09 20:38:02     1.46
+++ decl.c      2000/02/16 06:17:08
@@ -660,6 +660,9 @@ init_decl_processing ()
   PUSH_FIELD (class_type_node, field, "interface_count", short_type_node);
   PUSH_FIELD (class_type_node, field, "state", byte_type_node);
   PUSH_FIELD (class_type_node, field, "thread", ptr_type_node);
+  PUSH_FIELD (class_type_node, field, "depth", short_type_node);
+  PUSH_FIELD (class_type_node, field, "ancestors", class_ptr_type);
+  PUSH_FIELD (class_type_node, field, "idt", ptr_type_node);
   for (t = TYPE_FIELDS (class_type_node);  t != NULL_TREE;  t = TREE_CHAIN (t))
     FIELD_PRIVATE (t) = 1;
   push_super_field (class_type_node, object_type_node);


More information about the Java-patches mailing list