gcc/libjava/testsuite/libjava.jni/register2.c
Tom Tromey e7f7d23387 register2.java: New file.
* testsuite/libjava.jni/register2.java: New file.
	* testsuite/libjava.jni/register2.out: New file.
	* testsuite/libjava.jni/register2.c: New file.
	* java/lang/natClass.cc (_Jv_GetClassNameUtf8): New function.
	* java/lang/Class.h (_Jv_GetClassNameUtf8): Declare.
	* jni.cc (struct NativeMethodCacheEntry): New struct.
	(nathash): Changed type.
	(hash): Updated.
	(nathash_find_slot): Likewise.
	(nathash_find): Likewise.
	(natrehash): Likewise.
	(nathash_add): Likewise.
	(_Jv_JNI_RegisterNatives): Likewise.
	(_Jv_LookupJNIMethod): Likewise.
	Idea from Juerg Lehni <juerg@scratchdisk.com>

Co-Authored-By: Bryce McKinlay <mckinlay@redhat.com>

From-SVN: r117867
2006-10-18 23:17:04 +00:00

48 lines
882 B
C

#include <stdlib.h>
#include <assert.h>
#include <register2.h>
static int
twentythree (JNIEnv *env, jclass k)
{
return 23;
}
static int
oneninetyseven (JNIEnv *env, jclass k)
{
return 197;
}
JNIEXPORT jint JNICALL
JNI_OnLoad (JavaVM *vm, void *nothing)
{
JNIEnv *env;
JNINativeMethod meth;
jclass k;
jint r;
r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2);
assert (r == JNI_OK);
k = (*env)->FindClass (env, "register2$I1");
assert (k != NULL);
meth.name = "doit";
meth.signature = "()I";
meth.fnPtr = twentythree;
r = (*env)->RegisterNatives (env, k, &meth, 1);
assert (r == JNI_OK);
k = (*env)->FindClass (env, "register2$I2");
assert (k != NULL);
meth.name = "doit";
meth.signature = "()I";
meth.fnPtr = oneninetyseven;
r = (*env)->RegisterNatives (env, k, &meth, 1);
assert (r == JNI_OK);
return JNI_VERSION_1_2;
}