diff options
| -rw-r--r-- | runtime/class_linker.cc | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index 0e67f49a09..e98baba5ab 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -164,10 +164,12 @@ void ClassLinker::ThrowEarlierClassFailure(mirror::Class* c, bool wrap_in_no_cla    if (!runtime->IsAotCompiler()) {  // Give info if this occurs at runtime.      std::string extra;      if (c->GetVerifyError() != nullptr) { -      mirror::Class* descr_from = c->GetVerifyError()->IsClass() -                                      ? c->GetVerifyError()->AsClass() -                                      : c->GetVerifyError()->GetClass(); -      extra = PrettyDescriptor(descr_from); +      mirror::Object* verify_error = c->GetVerifyError(); +      if (verify_error->IsClass()) { +        extra = PrettyDescriptor(verify_error->AsClass()); +      } else { +        extra = verify_error->AsThrowable()->Dump(); +      }      }      LOG(INFO) << "Rejecting re-init on previously-failed class " << PrettyClass(c) << ": " << extra;    }  |