[vmkit-commits] [vmkit] r197886 - add jni new array methods
Gael Thomas
gael.thomas at lip6.fr
Sun Dec 22 10:17:05 PST 2013
Author: gthomas
Date: Sun Dec 22 12:17:05 2013
New Revision: 197886
URL: http://llvm.org/viewvc/llvm-project?rev=197886&view=rev
Log:
add jni new array methods
Modified:
vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
Modified: vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3jni.cc?rev=197886&r1=197885&r2=197886&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3jni.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3jni.cc Sun Dec 22 12:17:05 2013
@@ -220,20 +220,33 @@ jmethodID JNICALL GetStaticMethodID(JNIE
return res.val##j3type; \
}
-#define defJNI(jtype, id, j3type) \
+#define defNewArray(jtype, id, j3type) \
+ jtype##Array JNICALL New##id##Array(JNIEnv* env, jsize len) { \
+ jtype##Array res; \
+ enterJVM(); \
+ res = J3ObjectHandle::doNewArray(J3Thread::get()->vm()->type##j3type->getArray(), len); \
+ leaveJVM(); \
+ return res; \
+ }
+
+#define defJNIObj(jtype, id, j3type) \
defCall(jtype, id, j3type) \
defNonVirtualCall(jtype, id, j3type) \
- defStaticCall(jtype, id, j3type)
+ defStaticCall(jtype, id, j3type) \
- defJNI(jobject, Object, Object);
- defJNI(jboolean, Boolean, Boolean);
- defJNI(jbyte, Byte, Byte);
- defJNI(jchar, Char, Char);
- defJNI(jshort, Short, Short);
- defJNI(jint, Int, Integer);
- defJNI(jlong, Long, Long);
- defJNI(jfloat, Float, Float);
- defJNI(jdouble, Double, Double);
+#define defJNI(jtype, id, j3type) \
+ defJNIObj(jtype, id, j3type) \
+ defNewArray(jtype, id, j3type)
+
+ defJNIObj(jobject, Object, Object);
+ defJNI (jboolean, Boolean, Boolean);
+ defJNI (jbyte, Byte, Byte);
+ defJNI (jchar, Char, Char);
+ defJNI (jshort, Short, Short);
+ defJNI (jint, Int, Integer);
+ defJNI (jlong, Long, Long);
+ defJNI (jfloat, Float, Float);
+ defJNI (jdouble, Double, Double);
void JNICALL CallVoidMethod(JNIEnv* env, jobject obj, jmethodID methodID, ...) {
va_list va;
@@ -387,23 +400,6 @@ jobjectArray JNICALL NewObjectArray(JNIE
jobject JNICALL GetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index) { enterJVM(); leaveJVM(); NYI(); }
void JNICALL SetObjectArrayElement(JNIEnv* env, jobjectArray array, jsize index, jobject val) { enterJVM(); leaveJVM(); NYI(); }
-jbooleanArray JNICALL NewBooleanArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jbyteArray JNICALL NewByteArray(JNIEnv* env, jsize len) {
- jbyteArray res;
- enterJVM();
- res = J3ObjectHandle::doNewArray(J3Thread::get()->vm()->typeBoolean->getArray(), len);
- fprintf(stderr, " ---> %p\n", res);
- leaveJVM();
- return res;
-}
-
-jcharArray JNICALL NewCharArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jshortArray JNICALL NewShortArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jintArray JNICALL NewIntArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jlongArray JNICALL NewLongArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jfloatArray JNICALL NewFloatArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-jdoubleArray JNICALL NewDoubleArray(JNIEnv* env, jsize len) { enterJVM(); leaveJVM(); NYI(); }
-
jboolean* JNICALL GetBooleanArrayElements(JNIEnv* env, jbooleanArray array, jboolean* isCopy) { enterJVM(); leaveJVM(); NYI(); }
jbyte* JNICALL GetByteArrayElements(JNIEnv* env, jbyteArray array, jboolean* isCopy) { enterJVM(); leaveJVM(); NYI(); }
jchar* JNICALL GetCharArrayElements(JNIEnv* env, jcharArray array, jboolean* isCopy) { enterJVM(); leaveJVM(); NYI(); }
More information about the vmkit-commits
mailing list