[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