summaryrefslogtreecommitdiff
path: root/runtime/native/java_lang_VMClassLoader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/native/java_lang_VMClassLoader.cc')
-rw-r--r--runtime/native/java_lang_VMClassLoader.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/runtime/native/java_lang_VMClassLoader.cc b/runtime/native/java_lang_VMClassLoader.cc
index ba1fde00d3..a735765bdd 100644
--- a/runtime/native/java_lang_VMClassLoader.cc
+++ b/runtime/native/java_lang_VMClassLoader.cc
@@ -56,11 +56,13 @@ class VMClassLoader {
static ObjPtr<mirror::Class> FindClassInPathClassLoader(ClassLinker* cl,
Thread* self,
const char* descriptor,
+ size_t descriptor_length,
size_t hash,
Handle<mirror::ClassLoader> class_loader)
REQUIRES_SHARED(Locks::mutator_lock_) {
ObjPtr<mirror::Class> result;
- if (cl->FindClassInBaseDexClassLoader(self, descriptor, hash, class_loader, &result)) {
+ if (cl->FindClassInBaseDexClassLoader(
+ self, descriptor, descriptor_length, hash, class_loader, &result)) {
DCHECK(!self->IsExceptionPending());
return result;
}
@@ -83,7 +85,7 @@ static jclass VMClassLoader_findLoadedClass(JNIEnv* env, jclass, jobject javaLoa
// Compute hash once.
std::string descriptor(DotToDescriptor(name.c_str()));
- const size_t descriptor_hash = ComputeModifiedUtf8Hash(descriptor.c_str());
+ const size_t descriptor_hash = ComputeModifiedUtf8Hash(descriptor);
ObjPtr<mirror::Class> c = VMClassLoader::LookupClass(cl,
soa.Self(),
@@ -115,6 +117,7 @@ static jclass VMClassLoader_findLoadedClass(JNIEnv* env, jclass, jobject javaLoa
c = VMClassLoader::FindClassInPathClassLoader(cl,
soa.Self(),
descriptor.c_str(),
+ descriptor.length(),
descriptor_hash,
hs.NewHandle(loader));
if (c != nullptr) {