[vmkit-commits] [vmkit] r56302 - in /vmkit/branches/isolate/lib/JnJVM: Classpath/ClasspathVMThread.cpp.inc VMCore/JavaUpcalls.cpp VMCore/JavaUpcalls.h
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Thu Sep 18 00:48:18 PDT 2008
Author: geoffray
Date: Thu Sep 18 02:48:16 2008
New Revision: 56302
URL: http://llvm.org/viewvc/llvm-project?rev=56302&view=rev
Log:
Do not lookup the method VMThread::run, call it directly.
Modified:
vmkit/branches/isolate/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc
vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.cpp
vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.h
Modified: vmkit/branches/isolate/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc?rev=56302&r1=56301&r2=56302&view=diff
==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc (original)
+++ vmkit/branches/isolate/lib/JnJVM/Classpath/ClasspathVMThread.cpp.inc Thu Sep 18 02:48:16 2008
@@ -56,7 +56,7 @@
#else
Collector::inject_my_thread(&argc);
#endif
- UserCommonClass* vmthClass = vmThread->classOf;
+ UserClass* vmthClass = (UserClass*)vmThread->classOf;
Jnjvm* isolate = intern->isolate;
JavaObject* thread = isolate->upcalls->assocThread->getObjectField(vmThread);
ThreadSystem* ts = isolate->threadSystem;
@@ -77,10 +77,8 @@
vm->numThreads++;
vm->lock->unlock();
#endif
- UserClass* methodCl = 0;
- JavaMethod* method = vmthClass->lookupMethod(Jnjvm::runName, Jnjvm::clinitType, false, true, methodCl);
- method->invokeIntSpecial(isolate, (UserClass*)vmthClass, vmThread);
-
+
+ isolate->upcalls->runVMThread->invokeIntSpecial(isolate, vmthClass, vmThread);
if (!isDaemon) {
ts->nonDaemonLock->lock();
Modified: vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.cpp?rev=56302&r1=56301&r2=56302&view=diff
==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.cpp (original)
+++ vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.cpp Thu Sep 18 02:48:16 2008
@@ -55,6 +55,7 @@
JavaMethod* Classpath::uncaughtException;
Class* Classpath::inheritableThreadLocal;
+JavaMethod* Classpath::runVMThread;
JavaMethod* Classpath::setContextClassLoader;
JavaMethod* Classpath::getSystemClassLoader;
Class* Classpath::newString;
@@ -526,6 +527,10 @@
initVMThread =
UPCALL_METHOD(loader, "java/lang/VMThread", "<init>",
"(Ljava/lang/Thread;)V", ACC_VIRTUAL);
+
+ runVMThread =
+ UPCALL_METHOD(loader, "java/lang/VMThread", "run", "()V", ACC_VIRTUAL);
+
groupAddThread =
UPCALL_METHOD(loader, "java/lang/ThreadGroup", "addThread",
Modified: vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.h?rev=56302&r1=56301&r2=56302&view=diff
==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.h (original)
+++ vmkit/branches/isolate/lib/JnJVM/VMCore/JavaUpcalls.h Thu Sep 18 02:48:16 2008
@@ -125,6 +125,7 @@
ISOLATE_STATIC JavaField* vmdataVMThread;
ISOLATE_STATIC JavaMethod* finaliseCreateInitialThread;
ISOLATE_STATIC JavaMethod* initVMThread;
+ ISOLATE_STATIC JavaMethod* runVMThread;
ISOLATE_STATIC JavaMethod* groupAddThread;
ISOLATE_STATIC JavaField* name;
ISOLATE_STATIC JavaField* priority;
More information about the vmkit-commits
mailing list