diff options
author | Tom Tromey <tromey@redhat.com> | 2005-09-06 16:01:31 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2005-09-06 16:01:31 +0000 |
commit | 852993e3817924f37fdfa9d8c6b191cb30934cfb (patch) | |
tree | 3a53772caa4302c9e6c17a8f4d8ff1296f451bb1 /libjava/testsuite/libjava.jni | |
parent | 3e248b831501dcc1b222a2f27e880eff0b54e523 (diff) | |
download | gcc-852993e3817924f37fdfa9d8c6b191cb30934cfb.zip gcc-852993e3817924f37fdfa9d8c6b191cb30934cfb.tar.gz gcc-852993e3817924f37fdfa9d8c6b191cb30934cfb.tar.bz2 |
re PR libgcj/23739 (JNI: IsAssignableFrom reverses arguments)
PR libgcj/23739:
* testsuite/libjava.jni/pr23739.c: New file.
* testsuite/libjava.jni/pr23739.java: New file.
* testsuite/libjava.jni/pr23739.out: New file.
* jni.cc (_Jv_JNI_IsAssignableFrom): Reversed arguments.
* java/lang/reflect/natMethod.cc (invoke): Updated.
* java/lang/natClass.cc (isAssignableFrom): Updated.
(isInstance): Likewise.
(_Jv_IsAssignableFrom): Reversed arguments.
(_Jv_IsInstanceOf): Updated.
(_Jv_CheckCast): Likewise.
(_Jv_CheckArrayStore): Likewise.
(_Jv_IsAssignableFromSlow): Reversed arguments.
(_Jv_InterfaceAssignableFrom): Likewise.
* link.cc (verify_type_assertions): Updated.
* prims.cc (_Jv_CheckAccess): Updated.
From-SVN: r103953
Diffstat (limited to 'libjava/testsuite/libjava.jni')
-rw-r--r-- | libjava/testsuite/libjava.jni/pr23739.c | 12 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/pr23739.java | 22 | ||||
-rw-r--r-- | libjava/testsuite/libjava.jni/pr23739.out | 3 |
3 files changed, 37 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jni/pr23739.c b/libjava/testsuite/libjava.jni/pr23739.c new file mode 100644 index 0000000..0f6bfbe --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr23739.c @@ -0,0 +1,12 @@ +#include <stdio.h> +#include "pr23739.h" + +JNIEXPORT void JNICALL +Java_pr23739_checkOrder (JNIEnv *env, jclass cls, jclass clazz1, jclass clazz2) +{ + printf ("B extends A\n"); + printf ("isAssignableFrom (A, B): %d\n", + (*env)->IsAssignableFrom (env, clazz1, clazz2)); + printf ("isAssignableFrom (B, A): %d\n", + (*env)->IsAssignableFrom (env, clazz2, clazz1)); +} diff --git a/libjava/testsuite/libjava.jni/pr23739.java b/libjava/testsuite/libjava.jni/pr23739.java new file mode 100644 index 0000000..b2e54c5 --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr23739.java @@ -0,0 +1,22 @@ +public class pr23739 +{ + static + { + System.loadLibrary ("pr23739"); + } + + public static class A + { + } + + public static class B extends A + { + } + + static native void checkOrder (Class clazz1, Class clazz2); + + public static void main (String[] args) + { + checkOrder (A.class, B.class); + } +} diff --git a/libjava/testsuite/libjava.jni/pr23739.out b/libjava/testsuite/libjava.jni/pr23739.out new file mode 100644 index 0000000..3e94564 --- /dev/null +++ b/libjava/testsuite/libjava.jni/pr23739.out @@ -0,0 +1,3 @@ +B extends A +isAssignableFrom (A, B): 0 +isAssignableFrom (B, A): 1 |