From: rmathew Date: Fri, 30 Apr 2004 18:14:07 +0000 (+0000) Subject: Fixes PR java/15133 X-Git-Tag: upstream/4.9.2~71535 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d90d99505f8443c807bbc24e44dffacdb6c7ce5;p=platform%2Fupstream%2Flinaro-gcc.git Fixes PR java/15133 * gjavah.c (struct method_name): Add member is_native. (overloaded_jni_method_exists_p): Match candidate method only if it is native. (print_method_info): Initialise is_native flag from the method's access flags. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81357 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 4a4017e..b566fff 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,12 @@ +2004-04-30 Ranjit Mathew + + Fixes PR java/15133 + * gjavah.c (struct method_name): Add member is_native. + (overloaded_jni_method_exists_p): Match candidate method only if + it is native. + (print_method_info): Initialise is_native flag from the method's + access flags. + 2004-04-30 Roger Sayle * builtins.c (java_builtins): Add acos, asin, ceil and floor. diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c index 0a09ab6..45e5f25 100644 --- a/gcc/java/gjavah.c +++ b/gcc/java/gjavah.c @@ -119,6 +119,7 @@ struct method_name int length; unsigned char *signature; int sig_length; + int is_native; struct method_name *next; }; @@ -634,7 +635,7 @@ name_is_method_p (const unsigned char *name, int length) return 0; } -/* If there is already a method named NAME, whose signature is not +/* If there is already a native method named NAME, whose signature is not SIGNATURE, then return true. Otherwise return false. */ static int overloaded_jni_method_exists_p (const unsigned char *name, int length, @@ -644,7 +645,8 @@ overloaded_jni_method_exists_p (const unsigned char *name, int length, for (p = method_name_list; p != NULL; p = p->next) { - if (p->length == length + if (p->is_native + && p->length == length && ! memcmp (p->name, name, length) && (p->sig_length != sig_length || memcmp (p->signature, signature, sig_length))) @@ -851,6 +853,7 @@ print_method_info (FILE *stream, JCF* jcf, int name_index, int sig_index, nn->next = method_name_list; nn->sig_length = JPOOL_UTF_LENGTH (jcf, sig_index); nn->signature = xmalloc (nn->sig_length); + nn->is_native = METHOD_IS_NATIVE (flags); memcpy (nn->signature, JPOOL_UTF_DATA (jcf, sig_index), nn->sig_length); method_name_list = nn;