This is the mail archive of the
java-patches@sourceware.cygnus.com
mailing list for the Java project.
Patch: jni.h -vs- C
- To: Java Patch List <java-patches at sourceware dot cygnus dot com>
- Subject: Patch: jni.h -vs- C
- From: Tom Tromey <tromey at cygnus dot com>
- Date: 10 Feb 2000 16:42:46 -0700
- Reply-To: tromey at cygnus dot com
There were a couple bugs in jni.h when it was used from C -- some old,
some new. This patch fixes them.
I just ran my first JNI test and it worked.
(Don't get too happy yet -- it only works if your JNI method doesn't
actually try to use its arguments.)
2000-02-10 Tom Tromey <tromey@cygnus.com>
* include/jni.h (JNI_FALSE): Renamed from JNI_TRUE; oops.
(jboolean): Declare as an attributed int, not a bool.
(_Jv_func): Declare differently for C.
Tom
Index: include/jni.h
===================================================================
RCS file: /cvs/java/libgcj/libjava/include/jni.h,v
retrieving revision 1.10
diff -u -r1.10 jni.h
--- jni.h 2000/02/10 20:31:48 1.10
+++ jni.h 2000/02/10 23:38:50
@@ -34,7 +34,7 @@
typedef int jshort __attribute__((__mode__(__HI__)));
typedef int jint __attribute__((__mode__(__SI__)));
typedef int jlong __attribute__((__mode__(__DI__)));
-typedef bool jboolean __attribute__((__mode__(__QI__)));
+typedef int jboolean __attribute__((__mode__(__QI__)));
typedef unsigned short jchar __attribute__((__mode__(__HI__)));
typedef float jfloat;
typedef double jdouble;
@@ -62,8 +62,8 @@
typedef const struct JNINativeInterface *JNIEnv;
typedef const struct JNIInvokeInterface *JavaVM;
-#define JNI_TRUE 1
-#define JNI_TRUE 0
+#define JNI_TRUE 1
+#define JNI_FALSE 0
#endif /* __cplusplus */
@@ -117,7 +117,11 @@
jobject l;
} jvalue;
-typedef void * (*_Jv_func)(...);
+#ifdef __cplusplus
+typedef void * (*_Jv_func) (...);
+#else
+typedef void * (*_Jv_func) ();
+#endif
/* This structure is used when registering native methods. */
typedef struct