diff options
| author | 2017-01-24 17:58:53 +0000 | |
|---|---|---|
| committer | 2017-01-24 17:58:54 +0000 | |
| commit | cc92b213c1931a68b1317471b0e8fd12a98e96b0 (patch) | |
| tree | e3e63778569602bcfe36a4bd30844cc85c9ff93c /compiler/driver/compiler_driver.cc | |
| parent | 461bbbf6f2e8dddb33a124c598e806b75929c9bb (diff) | |
| parent | 72ab684871f870aead76b23cb67deb046107b380 (diff) | |
Merge "Add class status for resolved erroneous classes."
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
| -rw-r--r-- | compiler/driver/compiler_driver.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc index c03ffcaa31..b00d083c28 100644 --- a/compiler/driver/compiler_driver.cc +++ b/compiler/driver/compiler_driver.cc @@ -2199,7 +2199,7 @@ class SetVerifiedClassVisitor : public CompilationVisitor { if (klass.Get() != nullptr) { // Only do this if the class is resolved. If even resolution fails, quickening will go very, // very wrong. - if (klass->IsResolved()) { + if (klass->IsResolved() && !klass->IsErroneousResolved()) { if (klass->GetStatus() < mirror::Class::kStatusVerified) { ObjectLock<mirror::Class> lock(soa.Self(), klass); // Set class status to verified. @@ -2626,7 +2626,8 @@ CompiledClass* CompilerDriver::GetCompiledClass(ClassReference ref) const { void CompilerDriver::RecordClassStatus(ClassReference ref, mirror::Class::Status status) { switch (status) { case mirror::Class::kStatusNotReady: - case mirror::Class::kStatusError: + case mirror::Class::kStatusErrorResolved: + case mirror::Class::kStatusErrorUnresolved: case mirror::Class::kStatusRetryVerificationAtRuntime: case mirror::Class::kStatusVerified: case mirror::Class::kStatusInitialized: |