[vmkit-commits] [vmkit] r197861 - implement GetStaticMethod
Gael Thomas
gael.thomas at lip6.fr
Sat Dec 21 00:41:23 PST 2013
Author: gthomas
Date: Sat Dec 21 02:41:23 2013
New Revision: 197861
URL: http://llvm.org/viewvc/llvm-project?rev=197861&view=rev
Log:
implement GetStaticMethod
Modified:
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
vmkit/branches/mcjit/lib/j3/vm/j3jni.cc
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=197861&r1=197860&r2=197861&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Sat Dec 21 02:41:23 2013
@@ -141,6 +141,7 @@ J3ObjectType* J3ObjectType::nativeClass(
}
J3ObjectHandle* J3ObjectType::javaClass() {
+ fprintf(stderr, "javaClass: %p %p %ls\n", _javaClass, this, name()->cStr());
if(!_javaClass) {
lock();
if(!_javaClass) {
@@ -149,7 +150,9 @@ J3ObjectHandle* J3ObjectType::javaClass(
loader()->fixedPoint()->syncPush(_javaClass);
J3Thread::get()->restore(prev);
_javaClass->setLong(loader()->vm()->classVMData, (int64_t)(uintptr_t)this);
+ fprintf(stderr, " -> native class is %p\n", nativeClass(_javaClass));
loader()->vm()->classInit->invokeSpecial(_javaClass);
+ fprintf(stderr, " %p -> native class is %p\n", _javaClass, nativeClass(_javaClass));
}
unlock();
}
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=197861&r1=197860&r2=197861&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3jni.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3jni.cc Sat Dec 21 02:41:23 2013
@@ -27,7 +27,9 @@ jclass JNICALL FindClass(JNIEnv* env, co
cl->initialise();
res = cl->javaClass();
leaveJVM();
-
+
+ fprintf(stderr, "find class --> %p %p\n", res, J3ObjectType::nativeClass(res));
+
return res;
}
@@ -98,6 +100,7 @@ jmethodID JNICALL GetMethodID(JNIEnv* en
vmkit::Names* n = cl->loader()->vm()->names();
res = cl->findVirtualMethod(n->get(name), n->get(sig));
leaveJVM();
+
return res;
}
@@ -223,7 +226,21 @@ void JNICALL SetLongField(JNIEnv* env, j
void JNICALL SetFloatField(JNIEnv* env, jobject obj, jfieldID fieldID, jfloat val) { enterJVM(); leaveJVM(); NYI(); }
void JNICALL SetDoubleField(JNIEnv* env, jobject obj, jfieldID fieldID, jdouble val) { enterJVM(); leaveJVM(); NYI(); }
-jmethodID JNICALL GetStaticMethodID(JNIEnv* env, jclass clazz, const char* name, const char* sig) { enterJVM(); leaveJVM(); NYI(); }
+jmethodID JNICALL GetStaticMethodID(JNIEnv* env, jclass clazz, const char* name, const char* sig) {
+ jmethodID res;
+
+ enterJVM();
+
+ J3ObjectType* cl = J3ObjectType::nativeClass(clazz);
+ fprintf(stderr, "cl: %p %p\n", clazz, cl);
+ cl->initialise();
+ vmkit::Names* n = cl->loader()->vm()->names();
+ res = cl->findStaticMethod(n->get(name), n->get(sig));
+
+ leaveJVM();
+
+ return res;
+}
jobject JNICALL CallStaticObjectMethod(JNIEnv* env, jclass clazz, jmethodID methodID, ...) { enterJVM(); leaveJVM(); NYI(); }
jobject JNICALL CallStaticObjectMethodV(JNIEnv* env, jclass clazz, jmethodID methodID, va_list args) { enterJVM(); leaveJVM(); NYI(); }
More information about the vmkit-commits
mailing list