[vmkit-commits] [vmkit] r74921 - in /vmkit/trunk/lib/JnJVM: Compiler/JITInfo.cpp Compiler/JavaJIT.cpp VMCore/JavaClass.cpp VMCore/JnjvmClassLoader.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Jul 7 10:19:20 PDT 2009
Author: geoffray
Date: Tue Jul 7 12:19:13 2009
New Revision: 74921
URL: http://llvm.org/viewvc/llvm-project?rev=74921&view=rev
Log:
Change '$' to its unicode value when translating a Java method name to a
JNI name.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=74921&r1=74920&r2=74921&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Tue Jul 7 12:19:13 2009
@@ -134,7 +134,7 @@
sint32 mtlen = jniConsType->size;
char* buf = (char*)alloca(3 + JNI_NAME_PRE_LEN + 1 +
- ((mnlen + clen + mtlen) << 1));
+ ((mnlen + clen + mtlen) << 3));
bool jnjvm = false;
if (isNative(methodDef->access)) {
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp?rev=74921&r1=74920&r2=74921&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp Tue Jul 7 12:19:13 2009
@@ -245,7 +245,7 @@
sint32 mtlen = jniConsType->size;
char* functionName = (char*)alloca(3 + JNI_NAME_PRE_LEN +
- ((mnlen + clen + mtlen) << 1));
+ ((mnlen + clen + mtlen) << 3));
if (!natPtr)
natPtr = compilingClass->classLoader->nativeLookup(compilingMethod, jnjvm,
@@ -269,7 +269,7 @@
Function* func = llvmFunction;
- if (jnjvm) {
+ if (jnjvm)Â {
compilingMethod->setCompiledPtr((void*)natPtr, functionName);
return llvmFunction;
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=74921&r1=74920&r2=74921&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Tue Jul 7 12:19:13 2009
@@ -1079,14 +1079,25 @@
for (sint32 i =0; i < clen; ++i) {
cur = jniConsClName->elements[i];
- if (cur == '/') ptr[0] = '_';
- else if (cur == '_') {
+ if (cur == '/') {
+ ptr[0] = '_';
+ ++ptr;
+ } else if (cur == '_') {
ptr[0] = '_';
ptr[1] = '1';
+ ptr += 2;
+ } else if (cur == '$') {
+ ptr[0] = '_';
+ ptr[1] = '0';
+ ptr[2] = '0';
+ ptr[3] = '0';
+ ptr[4] = '2';
+ ptr[5] = '4';
+ ptr += 6;
+ } else {
+ ptr[0] = (uint8)cur;
++ptr;
}
- else ptr[0] = (uint8)cur;
- ++ptr;
}
ptr[0] = '_';
@@ -1118,6 +1129,14 @@
ptr[0] = '_';
ptr[1] = '1';
ptr += 2;
+ } else if (c == '$') {
+ ptr[0] = '_';
+ ptr[1] = '0';
+ ptr[2] = '0';
+ ptr[3] = '0';
+ ptr[4] = '2';
+ ptr[5] = '4';
+ ptr += 6;
} else if (c == I_END_REF) {
ptr[0] = '_';
ptr[1] = '2';
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=74921&r1=74920&r2=74921&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Tue Jul 7 12:19:13 2009
@@ -1146,7 +1146,7 @@
sint32 mtlen = jniConsType->size;
char* buf = (char*)alloca(3 + JNI_NAME_PRE_LEN + 1 +
- ((mnlen + clen + mtlen) << 1));
+ ((mnlen + clen + mtlen) << 3));
intptr_t res = meth->classDef->classLoader->nativeLookup(meth, jnjvm, buf);
assert(res && "Could not find required native method");
return res;
More information about the vmkit-commits
mailing list