diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-18 23:17:04 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-18 23:17:04 +0000 |
| commit | b68dfd9590812041be7f41c9e44877a936bf0b6f (patch) | |
| tree | 090a052b333feb86cf809ba60ebdc7a86794ff1e /libjava/testsuite/libjava.jni/register2.c | |
| parent | df45db482c1b39f2c39dce63ffabab82e8a68c5c (diff) | |
| download | ppe42-gcc-b68dfd9590812041be7f41c9e44877a936bf0b6f.tar.gz ppe42-gcc-b68dfd9590812041be7f41c9e44877a936bf0b6f.zip | |
* 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>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117867 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/testsuite/libjava.jni/register2.c')
| -rw-r--r-- | libjava/testsuite/libjava.jni/register2.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.jni/register2.c b/libjava/testsuite/libjava.jni/register2.c new file mode 100644 index 00000000000..1ed10a88a23 --- /dev/null +++ b/libjava/testsuite/libjava.jni/register2.c @@ -0,0 +1,48 @@ +#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; +} |

