This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: JNI dot/slash change


On Sun, 2005-02-13 at 12:39 -0700, Tom Tromey wrote:
> >>>>> "Anthony" == Anthony Green <green@redhat.com> writes:
> 
> Anthony> Attached is the patch I used to get the JNI code for jogl working.
> Anthony> Ok?
> 
> Yes, thanks.
> It would be nice to have a test case for this; it is pretty easy to
> add one to libjava.jni...

Ok, committed - along with attached test case.

Thanks,

AG
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.


Index: testsuite/libjava.jni/PR18116.c
===================================================================
RCS file: testsuite/libjava.jni/PR18116.c
diff -N testsuite/libjava.jni/PR18116.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/libjava.jni/PR18116.c	14 Feb 2005 14:56:06 -0000
@@ -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;
+}
Index: testsuite/libjava.jni/PR18116.java
===================================================================
RCS file: testsuite/libjava.jni/PR18116.java
diff -N testsuite/libjava.jni/PR18116.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/libjava.jni/PR18116.java	14 Feb 2005 14:56:06 -0000
@@ -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!"));
+  }
+}
Index: testsuite/libjava.jni/PR18116.out
===================================================================
RCS file: testsuite/libjava.jni/PR18116.out
diff -N testsuite/libjava.jni/PR18116.out
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ testsuite/libjava.jni/PR18116.out	14 Feb 2005 14:56:06 -0000
@@ -0,0 +1 @@
+555

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]