[vmkit-commits] [vmkit] r59826 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.h JavaRuntimeJIT.cpp Jnjvm.cpp JnjvmClassLoader.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri Nov 21 08:45:46 PST 2008


Author: geoffray
Date: Fri Nov 21 10:45:43 2008
New Revision: 59826

URL: http://llvm.org/viewvc/llvm-project?rev=59826&view=rev
Log:
Small initialization fixes for the SERVICE environment.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=59826&r1=59825&r2=59826&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Fri Nov 21 10:45:43 2008
@@ -527,13 +527,7 @@
   }
   
   void setInitializationState(JavaState st) {
-    if (classLoader == classLoader->bootstrapLoader) {
-      getCurrentTaskClassMirror().status = st;
-    } else {
-      for (uint32 i = 0; i < NR_ISOLATES; ++i) {
-        IsolateInfo[i].status = st;
-      }
-    }
+    getCurrentTaskClassMirror().status = st;
   }
   
   JavaObject* getDelegatee() {
@@ -685,13 +679,7 @@
   }
 
   void setStaticInstance(JavaObject* val) {
-    if (classLoader == classLoader->bootstrapLoader) {
-      getCurrentTaskClassMirror().staticInstance = val;
-    } else {
-      for (uint32 i = 0; i < NR_ISOLATES; ++i) {
-        IsolateInfo[i].staticInstance = val;
-      }
-    }
+    getCurrentTaskClassMirror().staticInstance = val;
   }
 
 #endif

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp?rev=59826&r1=59825&r2=59826&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp Fri Nov 21 10:45:43 2008
@@ -36,8 +36,10 @@
   uint32 index = enveloppe->index;
   
   ctpInfo->resolveMethod(index, cl, utf8, sign);
+#ifndef SERVICE
   assert(obj->classOf->isInitializing() && 
          "Class not ready in a virtual lookup.");
+#endif
 
   enveloppe->cacheLock.lock();
   CacheNode* rcache = 0;
@@ -58,7 +60,7 @@
     UserClass* methodCl = 0;
     JavaMethod* dmeth = ocl->lookupMethod(utf8, sign->keyName, false, true,
                                           &methodCl);
-#ifndef ISOLATE_SHARING
+#if !defined(ISOLATE_SHARING) && !defined(SERVICE)
     assert(dmeth->classDef->isInitializing() &&
            "Class not ready in a virtual lookup.");
 #endif
@@ -228,7 +230,7 @@
     caller->getConstantPool()->ctpRes[index] = (void*)dmeth->offset;
   }
 
-#ifndef ISOLATE_SHARING
+#if !defined(ISOLATE_SHARING) && !defined(SERVICE)
   assert(dmeth->classDef->isInitializing() && 
          "Class not ready in a virtual lookup.");
 #endif

Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp?rev=59826&r1=59825&r2=59826&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Fri Nov 21 10:45:43 2008
@@ -168,7 +168,13 @@
         throw exc;
       }
     }
-  
+ 
+#ifdef SERVICE
+    JavaObject* exc = 0;
+    if (classLoader == classLoader->bootstrapLoader || 
+        classLoader->isolate == vm) {
+#endif
+
     // 8. Next, execute either the class variable initializers and static
     //    initializers of the class or the field initializers of the interface,
     //    in textual order, as though they were a single block, except that
@@ -203,6 +209,9 @@
         JavaThread::clearException();
       }
     }
+#ifdef SERVICE
+    }
+#endif
 
     // 9. If the execution of the initializers completes normally, then lock
     //    this Class object, label it fully initialized, notify all waiting 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=59826&r1=59825&r2=59826&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Fri Nov 21 10:45:43 2008
@@ -53,6 +53,7 @@
 class JnjvmClassLoader : public mvm::CompilationUnit {
   friend class JavaJIT;
   friend class Jnjvm;
+  friend class UserCommonClass;
 private:
    
   





More information about the vmkit-commits mailing list