OSDN Git Service

* gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jul 2000 01:13:03 +0000 (01:13 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Jul 2000 01:13:03 +0000 (01:13 +0000)
stream argument on the first pass for CNI as well as JNI.
        (print_method_info): Set up method name on the first pass only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34869 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/java/ChangeLog
gcc/java/gjavah.c

index cd7b947..e7e2e0b 100644 (file)
@@ -1,3 +1,9 @@
+2000-07-02  Bryce McKinlay  <bryce@albatross.co.nz>
+
+        * gjavah.c (HANDLE_METHOD): Call print_method_info with a NULL stream
+        argument on the first pass for CNI as well as JNI.
+        (print_method_info): Set up method name on the first pass only.
+       
 2000-06-29  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
        * jcf-write.c (push_long_const): Appropriately cast short negative
index 3c04ebf..b8a37f7 100644 (file)
@@ -189,9 +189,12 @@ static int method_printed = 0;
       if (out)                                                               \
         print_method_info (out, jcf, NAME, SIGNATURE, ACCESS_FLAGS);         \
     }                                                                        \
-  else if (flag_jni)                                                         \
-    print_method_info (NULL, jcf, NAME, SIGNATURE, ACCESS_FLAGS);            \
-  else if (! stubs) add_class_decl (out, jcf, SIGNATURE);
+  else                                                                       \
+    {                                                                        \
+      print_method_info (NULL, jcf, NAME, SIGNATURE, ACCESS_FLAGS);          \
+      if (! stubs && ! flag_jni)                                             \
+       add_class_decl (out, jcf, SIGNATURE);                                 \
+    }
 
 #define HANDLE_CODE_ATTRIBUTE(MAX_STACK, MAX_LOCALS, CODE_LENGTH) \
   if (out && method_declared) decompile_method (out, jcf, CODE_LENGTH);
@@ -665,6 +668,7 @@ DEFUN(print_field_info, (stream, jcf, name_index, sig_index, flags),
     free (override);
 }
 
+
 static void
 DEFUN(print_method_info, (stream, jcf, name_index, sig_index, flags),
       FILE *stream AND JCF* jcf
@@ -700,7 +704,10 @@ DEFUN(print_method_info, (stream, jcf, name_index, sig_index, flags),
       else
        return;
     }
-  else
+
+  /* During the first method pass, build a list of method names. This will
+  be used to determine if field names conflict with method names. */
+  if (! stream)
     {
       struct method_name *nn;
 
@@ -714,14 +721,11 @@ DEFUN(print_method_info, (stream, jcf, name_index, sig_index, flags),
       memcpy (nn->signature, JPOOL_UTF_DATA (jcf, sig_index),
              nn->sig_length);
       method_name_list = nn;
+      
+      /* The rest of this function doesn't matter. */
+      return;
     }
 
-  /* If we're not printing, then the rest of this function doesn't
-     matter.  This happens during the first method pass in JNI mode.
-     Eww.  */
-  if (! stream)
-    return;
-
   /* We don't worry about overrides in JNI mode.  */
   if (! flag_jni)
     {