[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