[llvm-commits] CVS: llvm-java/runtime/runtime.c
Alkis Evlogimenos
alkis at cs.uiuc.edu
Sun Dec 12 00:43:25 PST 2004
Changes in directory llvm-java/runtime:
runtime.c updated: 1.11 -> 1.12
---
Log message:
Add some JNI calls so that the Test test case passes.
---
Diffs of the changes: (+63 -27)
Index: llvm-java/runtime/runtime.c
diff -u llvm-java/runtime/runtime.c:1.11 llvm-java/runtime/runtime.c:1.12
--- llvm-java/runtime/runtime.c:1.11 Wed Nov 24 13:44:53 2004
+++ llvm-java/runtime/runtime.c Sun Dec 12 02:43:15 2004
@@ -69,9 +69,46 @@
abort();
}
+/* The implementation of JNI functions */
+
+struct llvm_java_bytearray {
+ struct llvm_java_object_base object_base;
+ jint length;
+ jbyte data[0];
+};
+
+static jint llvm_java_GetArrayLength(JNIEnv* env, jarray array) {
+ return ((struct llvm_java_bytearray*) array)->length;
+}
+
+static jbyte* llvm_java_GetByteArrayElements(JNIEnv* env,
+ jarray array,
+ jboolean* isCopy) {
+ if (isCopy)
+ *isCopy = JNI_FALSE;
+ return ((struct llvm_java_bytearray*) array)->data;
+}
+
+static void llvm_java_ReleaseByteArrayElements(JNIEnv* env,
+ jarray array,
+ jbyte* elements,
+ jint mode) {
+ switch (mode) {
+ case 0:
+ case JNI_COMMIT:
+ case JNI_ABORT:
+ // Since we return a the live array we don't need to copy anything
+ // or delete the elememnts.
+ return;
+ default:
+ abort();
+ }
+}
+
/* The JNI interface definition */
static const struct JNINativeInterface llvm_java_JNINativeInterface = {
+ NULL, /* 0 */
NULL,
NULL,
NULL,
@@ -81,6 +118,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 10 */
NULL,
NULL,
NULL,
@@ -90,6 +128,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 20 */
NULL,
NULL,
NULL,
@@ -99,6 +138,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 30 */
NULL,
NULL,
NULL,
@@ -108,6 +148,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 40 */
NULL,
NULL,
NULL,
@@ -117,6 +158,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 50 */
NULL,
NULL,
NULL,
@@ -126,6 +168,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 60 */
NULL,
NULL,
NULL,
@@ -135,6 +178,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 70 */
NULL,
NULL,
NULL,
@@ -144,6 +188,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 80 */
NULL,
NULL,
NULL,
@@ -153,6 +198,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 90 */
NULL,
NULL,
NULL,
@@ -162,6 +208,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 100 */
NULL,
NULL,
NULL,
@@ -171,6 +218,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 110 */
NULL,
NULL,
NULL,
@@ -180,6 +228,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 120 */
NULL,
NULL,
NULL,
@@ -189,6 +238,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 130 */
NULL,
NULL,
NULL,
@@ -198,6 +248,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 140 */
NULL,
NULL,
NULL,
@@ -207,6 +258,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 150 */
NULL,
NULL,
NULL,
@@ -216,6 +268,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 160 */
NULL,
NULL,
NULL,
@@ -225,6 +278,8 @@
NULL,
NULL,
NULL,
+ NULL, /* 170 */
+ &llvm_java_GetArrayLength,
NULL,
NULL,
NULL,
@@ -233,15 +288,19 @@
NULL,
NULL,
NULL,
+ NULL, /* 180 */
NULL,
NULL,
NULL,
+ &llvm_java_GetByteArrayElements,
NULL,
NULL,
NULL,
NULL,
NULL,
+ NULL, /* 190 */
NULL,
+ &llvm_java_ReleaseByteArrayElements,
NULL,
NULL,
NULL,
@@ -249,6 +308,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 200 */
NULL,
NULL,
NULL,
@@ -258,6 +318,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 210 */
NULL,
NULL,
NULL,
@@ -267,6 +328,7 @@
NULL,
NULL,
NULL,
+ NULL, /* 220 */
NULL,
NULL,
NULL,
@@ -276,33 +338,7 @@
NULL,
NULL,
NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
+ NULL, /* 230 */
NULL,
};
More information about the llvm-commits
mailing list