[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