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
This commit is contained in:
Tom Tromey 2005-09-06 16:01:31 +00:00 committed by Tom Tromey
parent 3e248b8315
commit 852993e381
10 changed files with 73 additions and 17 deletions

View file

@ -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));
}

View file

@ -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);
}
}

View file

@ -0,0 +1,3 @@
B extends A
isAssignableFrom (A, B): 0
isAssignableFrom (B, A): 1