From a3cd834a9e63c4c2259f0ef87d79ddf2c4dd3afb Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 6 Jul 2015 17:20:18 -0700 Subject: [PATCH] ART: Avoid soft- after hard-fail in verifier Follow-up to 414000ec4d728b5c85f8c6dee4f867fecde59b01. Bug: 21886894 Bug: 22245124 (cherry picked from commit 890da29d279c44923f9271450b8a4423b1267655) Change-Id: I3728187bd8526cdf84f95b123e6fad5d6c5a8b3c --- runtime/verifier/method_verifier.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index 085f74180..e3999c152 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc @@ -4061,7 +4061,9 @@ void MethodVerifier::VerifyISFieldAccess(const Instruction* inst, const RegType& << " to be compatible with type '" << insn_type << "' but found type '" << *field_type << "' in get-object"; - work_line_->SetRegisterType(this, vregA, reg_types_.Conflict()); + if (error != VERIFY_ERROR_BAD_CLASS_HARD) { + work_line_->SetRegisterType(this, vregA, reg_types_.Conflict()); + } return; } } -- 2.11.0