[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