[vmkit-commits] [vmkit] r198514 - Implement SetStatic*Field
Gael Thomas
gael.thomas at lip6.fr
Sat Jan 4 14:20:46 PST 2014
Author: gthomas
Date: Sat Jan 4 16:20:46 2014
New Revision: 198514
URL: http://llvm.org/viewvc/llvm-project?rev=198514&view=rev
Log:
Implement SetStatic*Field
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=198514&r1=198513&r2=198514&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3jni.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3jni.cc Sat Jan 4 16:20:46 2014
@@ -271,15 +271,23 @@ jmethodID JNICALL GetStaticMethodID(JNIE
leaveJVM(); \
}
+#define defSetField(jtype, id, j3type) \
+ void JNICALL SetStatic##id##Field(JNIEnv* env, jclass clazz, jfieldID fieldID, jtype value) { \
+ enterJVM(); \
+ J3ObjectType::nativeClass(clazz)->asClass()->staticInstance()->set##j3type(fieldID, value); \
+ leaveJVM(); \
+ }
+
#define defJNIObj(jtype, id, j3type) \
defCall(jtype, id, j3type) \
defNonVirtualCall(jtype, id, j3type) \
defStaticCall(jtype, id, j3type) \
+ defSetField(jtype, id, j3type)
#define defJNI(jtype, id, j3type) \
defJNIObj(jtype, id, j3type) \
defNewArray(jtype, id, j3type) \
- defArrayRegion(jtype, id, j3type)
+ defArrayRegion(jtype, id, j3type)
defJNIObj(jobject, Object, Object);
defJNI (jboolean, Boolean, Boolean);
@@ -398,16 +406,6 @@ jlong JNICALL GetStaticLongField(JNIEnv*
jfloat JNICALL GetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID) { enterJVM(); leaveJVM(); NYI(); }
jdouble JNICALL GetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticObjectField(JNIEnv* env, jclass clazz, jfieldID fieldID, jobject value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticBooleanField(JNIEnv* env, jclass clazz, jfieldID fieldID, jboolean value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticByteField(JNIEnv* env, jclass clazz, jfieldID fieldID, jbyte value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticCharField(JNIEnv* env, jclass clazz, jfieldID fieldID, jchar value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticShortField(JNIEnv* env, jclass clazz, jfieldID fieldID, jshort value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticIntField(JNIEnv* env, jclass clazz, jfieldID fieldID, jint value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticLongField(JNIEnv* env, jclass clazz, jfieldID fieldID, jlong value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticFloatField(JNIEnv* env, jclass clazz, jfieldID fieldID, jfloat value) { enterJVM(); leaveJVM(); NYI(); }
-void JNICALL SetStaticDoubleField(JNIEnv* env, jclass clazz, jfieldID fieldID, jdouble value) { enterJVM(); leaveJVM(); NYI(); }
-
jstring JNICALL NewString(JNIEnv* env, const jchar* unicode, jsize len) { enterJVM(); leaveJVM(); NYI(); }
jsize JNICALL GetStringLength(JNIEnv* env, jstring str) {
jsize res;
More information about the vmkit-commits
mailing list