[llvm-commits] [vmkit] r51347 - /vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue May 20 13:58:35 PDT 2008
Author: geoffray
Date: Tue May 20 15:58:35 2008
New Revision: 51347
URL: http://llvm.org/viewvc/llvm-project?rev=51347&view=rev
Log:
Implement VMObjectStreamClass and VMArray native methods.
Modified:
vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
Modified: vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp?rev=51347&r1=51346&r2=51347&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Classpath/Classpath.cpp Tue May 20 15:58:35 2008
@@ -51,6 +51,125 @@
return false;
}
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setBooleanNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jboolean val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualInt8Field((JavaObject*)obj, (uint8)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setByteNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jbyte val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualInt8Field((JavaObject*)obj, (uint8)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setCharNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jchar val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualInt16Field((JavaObject*)obj, (uint16)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setShortNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jshort val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualInt16Field((JavaObject*)obj, (sint16)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setIntNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jint val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualInt32Field((JavaObject*)obj, (sint32)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setLongNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jlong val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualLongField((JavaObject*)obj, (sint64)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setFloatNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jfloat val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualFloatField((JavaObject*)obj, (float)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setDoubleNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jdouble val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualDoubleField((JavaObject*)obj, (double)val);
+}
+
+JNIEXPORT void JNICALL Java_java_io_VMObjectStreamClass_setObjectNative(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jobject Field, jobject obj, jobject val) {
+ JavaField* field = (JavaField*)Classpath::fieldSlot->getVirtualInt32Field((JavaObject*)Field);
+ field->setVirtualObjectField((JavaObject*)obj, (JavaObject*)val);
+}
+
+JNIEXPORT jobject JNICALL Java_java_io_VMObjectInputStream_allocateObject(
+#ifdef NATIVE_JNI
+JNIEnv *env,
+jclass clazz,
+#endif
+jclass target, jclass constr, jobject cons) {
+ Jnjvm* vm = JavaThread::get()->isolate;
+ Class* cl = (Class*)NativeUtil::resolvedImplClass(target, true);
+ JavaObject* res = cl->doNew(vm);
+ JavaMethod* meth = (JavaMethod*)(Classpath::constructorSlot->getVirtualInt32Field((JavaObject*)cons));
+ meth->invokeIntSpecial(vm, res);
+ return (jobject)res;
+}
+
+JNIEXPORT jobject JNICALL
+Java_java_lang_reflect_VMArray_createObjectArray
+ (
+#ifdef NATIVE_JNI
+ JNIEnv * env,
+ jclass thisClass __attribute__ ((__unused__)),
+#endif
+ jclass arrayType, jint arrayLength)
+{
+ Jnjvm* vm = JavaThread::get()->isolate;
+ ClassArray* cl = (ClassArray*)NativeUtil::resolvedImplClass(arrayType, true);
+ return (jobject) ArrayObject::acons((sint32)arrayLength, cl, vm);
+}
+
+
JNIEXPORT bool JNICALL Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8(
#ifdef NATIVE_JNI
JNIEnv *env,
More information about the llvm-commits
mailing list