summaryrefslogtreecommitdiffstats
path: root/libjava/testsuite/libjava.jni/register2.c
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-18 23:17:04 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-18 23:17:04 +0000
commitb68dfd9590812041be7f41c9e44877a936bf0b6f (patch)
tree090a052b333feb86cf809ba60ebdc7a86794ff1e /libjava/testsuite/libjava.jni/register2.c
parentdf45db482c1b39f2c39dce63ffabab82e8a68c5c (diff)
downloadppe42-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.c48
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;
+}
OpenPOWER on IntegriCloud