[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