[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