re PR libgcj/18116 (JNI uses dot instead of slash as the package separator)

2005-02-14  Anthony Green  <green@redhat.com>

        PR libgcj/18116
        * testsuite/libjava.jni/PR18116.c: New file.
        * testsuite/libjava.jni/PR18116.java: New file.
        * testsuite/libjava.jni/PR18116.out: New file.

From-SVN: r95014
This commit is contained in:
Anthony Green 2005-02-14 14:57:37 +00:00 committed by Anthony Green
parent 92d2b330de
commit d633cfe524
4 changed files with 60 additions and 0 deletions

View File

@ -1,5 +1,13 @@
2005-02-14 Anthony Green <green@redhat.com>
PR libgcj/18116
* testsuite/libjava.jni/PR18116.c: New file.
* testsuite/libjava.jni/PR18116.java: New file.
* testsuite/libjava.jni/PR18116.out: New file.
2005-02-13 Anthony Green <green@redhat.com>
PR libgcj/18116
* jni.cc (nathash_add): Don't strdup the method signature.
(_Jv_JNI_RegisterNatives): Convert the slashes to dots in the
method signature.

View File

@ -0,0 +1,35 @@
#include <stdlib.h>
#include <assert.h>
#include <PR18116.h>
// The purpose of this test is to ensure that signatures with non-top
// level class arguments work.
static jint
some_random_name (JNIEnv *env, jclass k, jobject v)
{
return 555;
}
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, "PR18116");
assert (k != NULL);
meth.name = "doit";
meth.signature = "(Ljava/lang/String;)I";
meth.fnPtr = some_random_name;
r = (*env)->RegisterNatives (env, k, &meth, 1);
assert (r == JNI_OK);
return JNI_VERSION_1_2;
}

View File

@ -0,0 +1,16 @@
// PR18116.java - Test RegisterNatives with more complex signatures.
public class PR18116
{
static
{
System.loadLibrary ("PR18116");
}
public static native int doit (java.lang.String s);
public static void main (String[] args)
{
System.out.println (doit ("Hello World!"));
}
}

View File

@ -0,0 +1 @@
555