diff options
Diffstat (limited to 'src/class_linker.cc')
-rw-r--r-- | src/class_linker.cc | 7 |
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; } } |