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

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Oct 26 11:26:04 PDT 2008


Author: geoffray
Date: Sun Oct 26 13:26:04 2008
New Revision: 58193

URL: http://llvm.org/viewvc/llvm-project?rev=58193&view=rev
Log:
Move the primitive map to the bootstrap loader.


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

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Sun Oct 26 13:26:04 2008
@@ -44,10 +44,6 @@
 const char* Jnjvm::envSeparator = ":";
 const unsigned int Jnjvm::Magic = 0xcafebabe;
 
-#ifndef ISOLATE
-std::map<const char, UserClassPrimitive*> Jnjvm::primitiveMap;
-#endif
-
 typedef void (*clinit_t)(Jnjvm* vm, UserConstantPool*);
 
 void UserCommonClass::initialiseClass(Jnjvm* vm) {
@@ -810,16 +806,6 @@
   arrayClasses[JavaArray::T_FLOAT - 4] = upcalls->ArrayOfFloat;
   arrayClasses[JavaArray::T_LONG - 4] = upcalls->ArrayOfLong;
   arrayClasses[JavaArray::T_DOUBLE - 4] = upcalls->ArrayOfDouble;
-
-  primitiveMap[I_VOID] = upcalls->OfVoid;
-  primitiveMap[I_BOOL] = upcalls->OfBool;
-  primitiveMap[I_BYTE] = upcalls->OfByte;
-  primitiveMap[I_CHAR] = upcalls->OfChar;
-  primitiveMap[I_SHORT] = upcalls->OfShort;
-  primitiveMap[I_INT] = upcalls->OfInt;
-  primitiveMap[I_FLOAT] = upcalls->OfFloat;
-  primitiveMap[I_LONG] = upcalls->OfLong;
-  primitiveMap[I_DOUBLE] = upcalls->OfDouble;
   
   upcalls->initialiseClasspath(bootstrapLoader);
  

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h Sun Oct 26 13:26:04 2008
@@ -94,8 +94,6 @@
   std::map<const char, UserClassArray*> arrayClasses;
 private:
   
-  ISOLATE_STATIC std::map<const char, UserClassPrimitive*> primitiveMap;
-
   /// bootstrapThread - The initial thread of this JVM.
   ///
   JavaThread* bootstrapThread;
@@ -287,10 +285,6 @@
   void setClasspath(char* cp) {
     classpath = cp;
   }
-  
-  ISOLATE_STATIC UserClassPrimitive* getPrimitiveClass(char id) {
-    return primitiveMap[id];
-  }
 
   /// Jnjvm - Allocates a new JVM.
   ///

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Sun Oct 26 13:26:04 2008
@@ -208,7 +208,16 @@
   DEF_UTF8(finalize);
 
 #undef DEF_UTF8
-
+  
+  primitiveMap[I_VOID] = upcalls->OfVoid;
+  primitiveMap[I_BOOL] = upcalls->OfBool;
+  primitiveMap[I_BYTE] = upcalls->OfByte;
+  primitiveMap[I_CHAR] = upcalls->OfChar;
+  primitiveMap[I_SHORT] = upcalls->OfShort;
+  primitiveMap[I_INT] = upcalls->OfInt;
+  primitiveMap[I_FLOAT] = upcalls->OfFloat;
+  primitiveMap[I_LONG] = upcalls->OfLong;
+  primitiveMap[I_DOUBLE] = upcalls->OfDouble;
 }
 
 JnjvmClassLoader::JnjvmClassLoader(JnjvmClassLoader& JCL, JavaObject* loader,
@@ -487,10 +496,10 @@
       break;
     default :
       UserClassPrimitive* cl = 
-        isolate->getPrimitiveClass((char)name->elements[0]);
+        bootstrapLoader->getPrimitiveClass((char)name->elements[0]);
       assert(cl && "No primitive");
-      bool unsign = (cl == isolate->upcalls->OfChar || 
-                     cl == isolate->upcalls->OfBool);
+      bool unsign = (cl == bootstrapLoader->upcalls->OfChar || 
+                     cl == bootstrapLoader->upcalls->OfBool);
       res = new(allocator) PrimitiveTypedef(name, cl, unsign, cur);
   }
   return res;

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Sun Oct 26 13:26:04 2008
@@ -337,6 +337,12 @@
   const UTF8* tanh;
   const UTF8* finalize;
 
+  /// primitiveMap - Map of primitives, hashed by id.
+  std::map<const char, UserClassPrimitive*> primitiveMap;
+
+  UserClassPrimitive* getPrimitiveClass(char id) {
+    return primitiveMap[id];
+  }
 };
 
 } // end namespace jnjvm





More information about the vmkit-commits mailing list