jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where inner_class_info_index...
authorTom Tromey <tromey@redhat.com>
Wed, 30 Mar 2005 17:46:48 +0000 (17:46 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 30 Mar 2005 17:46:48 +0000 (17:46 +0000)
* jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
inner_class_info_index==0 or outer_class_info_index==0.

From-SVN: r97263

gcc/java/ChangeLog
gcc/java/jcf-dump.c

index 0c0430ec6b17fbccac941abfe335e304ab0958af..73233aab9a8e13244fb3d119bf90a53e903ede5f 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-30  Tom Tromey  <tromey@redhat.com>
+
+       * jcf-dump.c (HANDLE_INNERCLASSES_ATTRIBUTE): Handle cases where
+       inner_class_info_index==0 or outer_class_info_index==0.
+
 2005-03-29  Tom Tromey  <tromey@redhat.com>
 
        * gcj.texi (libgcj Runtime Properties): Document
index c3fd9f1bf4d3e329647228c3ed1fb7d87d4d28ec..9bd7650b6619c3ac488d3b4601ad3c0f93edbb9e 100644 (file)
@@ -65,7 +65,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
 #include <getopt.h>
 #include <math.h>
 
-/* Outout file. */
+/* Output file. */
 FILE *out;
 /* Name of output file, if NULL if stdout. */
 char *output_file = NULL;
@@ -320,8 +320,12 @@ utf8_equal_string (JCF *jcf, int index, const char * value)
       if (flag_print_class_info)                                           \
        {                                                                   \
          fprintf (out, "\n  inner: ");                                     \
-         print_constant_terse_with_index (out, jcf,                        \
-                               inner_class_info_index, CONSTANT_Class);    \
+         if (inner_class_info_index == 0)                                  \
+           fprintf (out, " (no inner info index)");                        \
+         else                                                              \
+           print_constant_terse_with_index (out, jcf,                      \
+                                            inner_class_info_index,        \
+                                            CONSTANT_Class);               \
          if (inner_name_index == 0)                                        \
            fprintf (out, " (anonymous)");                                  \
          else if (verbose || flag_print_constant_pool)                     \
@@ -334,12 +338,16 @@ utf8_equal_string (JCF *jcf, int index, const char * value)
          fprintf (out, ", access flags: 0x%x", inner_class_access_flags);  \
          print_access_flags (out, inner_class_access_flags, 'c');          \
          fprintf (out, ", outer class: ");                                 \
-         print_constant_terse_with_index (out, jcf,                        \
-                               outer_class_info_index, CONSTANT_Class);    \
+         if (outer_class_info_index == 0)                                  \
+           fprintf (out, "(not a member)");                                \
+         else                                                              \
+           print_constant_terse_with_index (out, jcf,                      \
+                                            outer_class_info_index,        \
+                                            CONSTANT_Class);               \
        }                                                                   \
     }                                                                      \
-      if (flag_print_class_info)                                           \
-       fputc ('\n', out);                                                  \
+  if (flag_print_class_info)                                               \
+    fputc ('\n', out);                                                     \
 }
 
 #define HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE(LENGTH) \