summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/class_linker.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/class_linker.cc b/src/class_linker.cc
index eade908a4b..a8703dab91 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -2247,7 +2247,10 @@ Class* ClassLinker::ResolveType(const DexFile& dex_file,
resolved = FindClass(descriptor, class_loader);
}
if (resolved != NULL) {
- Class* check = resolved->IsArrayClass() ? resolved->GetComponentType() : resolved;
+ Class* check = resolved;
+ while (check->IsArrayClass()) {
+ check = check->GetComponentType();
+ }
if (dex_cache != check->GetDexCache()) {
if (check->GetClassLoader() != NULL) {
Thread::Current()->ThrowNewExceptionF("Ljava/lang/IllegalAccessError;",