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]

[gcjx] Patch: FYI: wildcards -vs- type descriptor


I'm checking this in on the gcjx branch.

This is a workaround for a bug in model_class where it would try to
dereference the compilation unit even if there isn't one.  I suppose I
could make this method virtual and override it in model_wildcard, or
change the array type to compute the type descriptor lazily, but this
was convenient.  Also I think there is a similar hack elsewhere in the
model already.

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>
	* model/class.cc (get_fully_qualified_name): Only dereference
	compilation unit if it exists.

Index: model/class.cc
===================================================================
RCS file: /cvs/gcc/gcc/gcjx/model/Attic/class.cc,v
retrieving revision 1.1.2.17
diff -u -r1.1.2.17 class.cc
--- model/class.cc 18 Oct 2005 22:16:55 -0000 1.1.2.17
+++ model/class.cc 26 Oct 2005 00:36:01 -0000
@@ -475,7 +475,12 @@
 	      + get_assigned_name ());
   else
     {
-      result = compilation_unit->get_package ()->get_fully_qualified_name ();
+      // Ordinarily there is always a compilation unit.  However, this
+      // is not the case for wildcard types.  Doing this simplifies
+      // the model_array_type constructor (which precomputes the array
+      // descriptor), and doesn't matter in practice.
+      if (compilation_unit)
+	result = compilation_unit->get_package ()->get_fully_qualified_name ();
       if (! result.empty ())
 	result += ".";
       result += name;


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