Inline the string map in the Jnjvm object.
llvm-svn: 57682
diff --git a/vmkit/lib/JnJVM/VMCore/JavaString.cpp b/vmkit/lib/JnJVM/VMCore/JavaString.cpp
index b181af9..c511b65 100644
--- a/vmkit/lib/JnJVM/VMCore/JavaString.cpp
+++ b/vmkit/lib/JnJVM/VMCore/JavaString.cpp
@@ -52,5 +52,5 @@
void JavaString::stringDestructor(JavaString* str) {
Jnjvm* vm = JavaThread::get()->isolate;
assert(vm && "No vm when destroying a string");
- if (str->value) vm->hashStr->remove(str->value, str);
+ if (str->value) vm->hashStr.remove(str->value, str);
}
diff --git a/vmkit/lib/JnJVM/VMCore/Jnjvm.cpp b/vmkit/lib/JnJVM/VMCore/Jnjvm.cpp
index e30c3d9..8a91471 100644
--- a/vmkit/lib/JnJVM/VMCore/Jnjvm.cpp
+++ b/vmkit/lib/JnJVM/VMCore/Jnjvm.cpp
@@ -320,7 +320,7 @@
}
JavaString* Jnjvm::internalUTF8ToStr(const UTF8* utf8) {
- JavaString* res = hashStr->lookup(utf8);
+ JavaString* res = hashStr.lookup(utf8);
if (!res) {
uint32 size = utf8->size;
UTF8* tmp = (UTF8*)upcalls->ArrayOfChar->doNew(size, this);
@@ -331,13 +331,13 @@
}
const UTF8* newUTF8 = (const UTF8*)tmp;
- res = hashStr->lookupOrCreate(newUTF8, this, JavaString::stringDup);
+ res = hashStr.lookupOrCreate(newUTF8, this, JavaString::stringDup);
}
return res;
}
JavaString* Jnjvm::UTF8ToStr(const UTF8* utf8) {
- JavaString* res = hashStr->lookupOrCreate(utf8, this, JavaString::stringDup);
+ JavaString* res = hashStr.lookupOrCreate(utf8, this, JavaString::stringDup);
return res;
}
@@ -368,17 +368,6 @@
return delegatee;
}
-Jnjvm::~Jnjvm() {
- if (hashStr) {
- hashStr->~StringMap();
- allocator.Deallocate(hashStr);
- }
-}
-
-Jnjvm::Jnjvm() {
- hashStr = 0;
-}
-
#define PATH_MANIFEST "META-INF/MANIFEST.MF"
#define MAIN_CLASS "Main-Class: "
#define PREMAIN_CLASS "Premain-Class: "
@@ -880,7 +869,6 @@
upcalls->initialiseClasspath(bootstrapLoader);
- hashStr = new(allocator) StringMap();
}
const UTF8* Jnjvm::asciizToInternalUTF8(const char* asciiz) {
diff --git a/vmkit/lib/JnJVM/VMCore/Jnjvm.h b/vmkit/lib/JnJVM/VMCore/Jnjvm.h
index cacdb6c..5e900ef 100644
--- a/vmkit/lib/JnJVM/VMCore/Jnjvm.h
+++ b/vmkit/lib/JnJVM/VMCore/Jnjvm.h
@@ -23,6 +23,7 @@
#include "JavaTypes.h"
#include "JnjvmConfig.h"
+#include "LockedMap.h"
namespace jnjvm {
@@ -36,7 +37,6 @@
class JavaThread;
class JnjvmBootstrapLoader;
class JnjvmClassLoader;
-class StringMap;
class UserClass;
class UserClassArray;
class UserClassPrimitive;
@@ -256,7 +256,7 @@
/// hashStr - Hash map of java/lang/String objects allocated by this JVM.
///
- StringMap* hashStr;
+ StringMap hashStr;
public:
/// Exceptions - These are the only exceptions VMKit will make.
@@ -311,11 +311,11 @@
/// ~Jnjvm - Destroy the JVM.
///
- ~Jnjvm();
+ ~Jnjvm() {}
/// Jnjvm - Allocate a default JVM, for VT initialization.
///
- Jnjvm();
+ Jnjvm() {}
/// addProperty - Adds a new property in the postProperties map.
///