[vmkit-commits] [vmkit] r72017 - in /vmkit/trunk/lib/JnJVM: Compiler/JavaAOTCompiler.cpp VMCore/JavaArray.h VMCore/JnjvmClassLoader.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon May 18 10:13:17 PDT 2009
Author: geoffray
Date: Mon May 18 12:13:16 2009
New Revision: 72017
URL: http://llvm.org/viewvc/llvm-project?rev=72017&view=rev
Log:
Change names for AOT class names, following JNI conventions.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=72017&r1=72016&r2=72017&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Mon May 18 12:13:16 2009
@@ -66,7 +66,7 @@
GlobalVariable* varGV =
new GlobalVariable(Ty, false, GlobalValue::ExternalLinkage, 0,
- UTF8Buffer(classDef->name).toClassName()->cString(),
+ UTF8Buffer(classDef->name).toCompileName()->cString(),
getLLVMModule());
nativeClasses.insert(std::make_pair(classDef, varGV));
@@ -97,7 +97,7 @@
GlobalVariable* varGV =
new GlobalVariable(Ty, false, GlobalValue::InternalLinkage,
Constant::getNullValue(Ty),
- UTF8Buffer(classDef->name).toClassName()->cString(),
+ UTF8Buffer(classDef->name).toCompileName()->cString(),
getLLVMModule());
arrayClasses.insert(std::make_pair(classDef->asArrayClass(), varGV));
@@ -279,7 +279,7 @@
LLVMClassInfo* LCI = getClassInfo(classDef);
const Type* Ty = LCI->getStaticType();
Ty = Ty->getContainedType(0);
- std::string name(UTF8Buffer(classDef->name).toClassName()->cString());
+ std::string name(UTF8Buffer(classDef->name).toCompileName()->cString());
name += "_static";
GlobalVariable* varGV =
new GlobalVariable(Ty, false, GlobalValue::ExternalLinkage,
@@ -319,7 +319,7 @@
dyn_cast<ArrayType>(JnjvmModule::VTType->getContainedType(0));
const PointerType* PTy = dyn_cast<PointerType>(ATy->getContainedType(0));
ATy = ArrayType::get(PTy, size);
- std::string name(UTF8Buffer(classDef->name).toClassName()->cString());
+ std::string name(UTF8Buffer(classDef->name).toCompileName()->cString());
name += "_VT";
// Do not set a virtual table as a constant, because the runtime may
// modify it.
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h?rev=72017&r1=72016&r2=72017&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaArray.h Mon May 18 12:13:16 2009
@@ -183,10 +183,29 @@
/// toClassName - Change '/' into '.' in the buffer.
///
- UTF8Buffer* toClassName() {
+ UTF8Buffer* toCompileName() {
uint32 len = strlen(buffer);
- for (uint32 i = 0; i < len; ++i)
- if (buffer[i] == '/') buffer[i] = '.';
+ char* newBuffer = new char[(len << 1) + 1];
+ uint32 j = 0;
+ for (uint32 i = 0; i < len; ++i) {
+ if (buffer[i] == '/') {
+ newBuffer[j++] = '_';
+ } else if (buffer[i] == '_') {
+ newBuffer[j++] = '_';
+ newBuffer[j++] = '1';
+ } else if (buffer[i] == ';') {
+ newBuffer[j++] = '_';
+ newBuffer[j++] = '2';
+ } else if (buffer[i] == '[') {
+ newBuffer[j++] = '_';
+ newBuffer[j++] = '3';
+ } else {
+ newBuffer[j++] = buffer[i];
+ }
+ }
+ newBuffer[j] = 0;
+ delete[] buffer;
+ buffer = newBuffer;
return this;
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=72017&r1=72016&r2=72017&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Mon May 18 12:13:16 2009
@@ -82,12 +82,12 @@
// Try to find if we have a pre-compiled rt.jar
if (dlLoad) {
- SuperArray = (Class*)dlsym(SELF_HANDLE, "java.lang.Object");
+ SuperArray = (Class*)dlsym(SELF_HANDLE, "java_lang_Object");
if (!SuperArray) {
nativeHandle = dlopen("libvmjc"DYLD_EXTENSION, RTLD_LAZY | RTLD_GLOBAL);
if (nativeHandle) {
// Found it!
- SuperArray = (Class*)dlsym(nativeHandle, "java.lang.Object");
+ SuperArray = (Class*)dlsym(nativeHandle, "java_lang_Object");
}
}
More information about the vmkit-commits
mailing list