summaryrefslogtreecommitdiff
path: root/src/class_linker.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/class_linker.cc')
-rw-r--r--src/class_linker.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/class_linker.cc b/src/class_linker.cc
index e2ae0f3fd1..3280410ce6 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -1967,7 +1967,8 @@ void ClassLinker::VerifyClass(Class* klass) {
return;
}
- CHECK(klass->IsResolved()) << PrettyClass(klass);
+ CHECK(klass->GetStatus() == Class::kStatusResolved ||
+ klass->GetStatus() == Class::kStatusRetryVerificationAtRuntime) << PrettyClass(klass);
klass->SetStatus(Class::kStatusVerifying);
// Verify super class
@@ -2361,7 +2362,9 @@ bool ClassLinker::InitializeClass(Class* klass, bool can_run_clinit, bool can_in
klass->GetStatus() == Class::kStatusRetryVerificationAtRuntime) {
VerifyClass(klass);
if (klass->GetStatus() != Class::kStatusVerified) {
- CHECK(self->IsExceptionPending());
+ if (klass->GetStatus() == Class::kStatusError) {
+ CHECK(self->IsExceptionPending());
+ }
return false;
}
}