[vmkit-commits] [vmkit] r59630 - /vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Nov 19 04:58:49 PST 2008


Author: geoffray
Date: Wed Nov 19 06:58:49 2008
New Revision: 59630

URL: http://llvm.org/viewvc/llvm-project?rev=59630&view=rev
Log:
Only base classes have different static instances in an ISOLATE
environment.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h

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

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





More information about the vmkit-commits mailing list