[vmkit-commits] [vmkit] r56977 - in /vmkit/branches/isolate/lib/JnJVM/VMCore: JnjvmClassLoader.cpp JnjvmClassLoader.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Thu Oct 2 15:58:13 PDT 2008


Author: geoffray
Date: Thu Oct  2 17:58:13 2008
New Revision: 56977

URL: http://llvm.org/viewvc/llvm-project?rev=56977&view=rev
Log:
Let callers of resolveClassFromUTF8 decide which UTF8 to give.


Modified:
    vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
    vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.h

Modified: vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=56977&r1=56976&r2=56977&view=diff

==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Thu Oct  2 17:58:13 2008
@@ -179,12 +179,12 @@
   return cl;
 }
 
-UserCommonClass* JnjvmClassLoader::lookupClassFromUTF8(const UTF8* utf8, unsigned int start,
-                                         unsigned int len,
-                                         bool doResolve,
-                                         bool doThrow) {
+UserCommonClass* JnjvmClassLoader::lookupClassFromUTF8(const UTF8* name,
+                                                       bool doResolve,
+                                                       bool doThrow) {
+  uint32 len = name->size;
+  uint32 start = 0;
   uint32 origLen = len;
-  const UTF8* name = utf8->javaToInternal(hashUTF8, start, len);
   bool doLoop = true;
   UserCommonClass* ret = 0;
 
@@ -203,10 +203,10 @@
             uint32 size = (uint32)name->size;
             if ((size == (start + 1)) || (size == (start + 2)) || 
                  (name->elements[start + 1] == I_TAB) || 
-                 (utf8->elements[origLen - 1] != I_END_REF)) {
+                 (name->elements[origLen - 1] != I_END_REF)) {
               doLoop = false; 
             } else {
-              const UTF8* componentName = utf8->javaToInternal(hashUTF8,
+              const UTF8* componentName = name->javaToInternal(hashUTF8,
                                                                start + 1,
                                                                len - 2);
               if (loadName(componentName, doResolve, doThrow)) {
@@ -245,8 +245,19 @@
 
 UserCommonClass* JnjvmClassLoader::lookupClassFromJavaString(JavaString* str,
                                               bool doResolve, bool doThrow) {
-  return lookupClassFromUTF8(str->value, str->offset, str->count,
-                             doResolve, doThrow);
+  
+  const UTF8* name = 0;
+  
+  if (str->value->elements[str->offset] != I_TAB)
+    name = str->value->checkedJavaToInternal(hashUTF8, str->offset,
+                                             str->count);
+  else
+    name = str->value->javaToInternal(hashUTF8, str->offset, str->count);
+
+  if (name)
+    return lookupClassFromUTF8(name, doResolve, doThrow);
+
+  return 0;
 }
 
 UserCommonClass* JnjvmClassLoader::lookupClass(const UTF8* utf8) {

Modified: vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=56977&r1=56976&r2=56977&view=diff

==============================================================================
--- vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/branches/isolate/lib/JnJVM/VMCore/JnjvmClassLoader.h Thu Oct  2 17:58:13 2008
@@ -140,9 +140,8 @@
   
   /// lookupClassFromUTF8 - Lookup a class from an UTF8 name and load it.
   ///
-  UserCommonClass* lookupClassFromUTF8(const UTF8* utf8, unsigned int start,
-                                   unsigned int len, bool doResolve,
-                                   bool doThrow);
+  UserCommonClass* lookupClassFromUTF8(const UTF8* utf8, bool doResolve,
+                                       bool doThrow);
   
   /// lookupClassFromJavaString - Lookup a class from a Java String and load it.
   ///





More information about the vmkit-commits mailing list