summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2015-07-06 17:20:18 -0700
committerAndreas Gampe <agampe@google.com>2015-07-08 14:07:56 -0700
commita3cd834a9e63c4c2259f0ef87d79ddf2c4dd3afb (patch)
tree15f61fa1de68aedc86efd1d4441c04b611173145
parentfd6fe84c68fdc2ae5f9a1a1bbde80ece4ca557d5 (diff)
downloadart-a3cd834a9e63c4c2259f0ef87d79ddf2c4dd3afb.zip
art-a3cd834a9e63c4c2259f0ef87d79ddf2c4dd3afb.tar.gz
art-a3cd834a9e63c4c2259f0ef87d79ddf2c4dd3afb.tar.bz2
ART: Avoid soft- after hard-fail in verifier
Follow-up to 414000ec4d728b5c85f8c6dee4f867fecde59b01. Bug: 21886894 Bug: 22245124 (cherry picked from commit 890da29d279c44923f9271450b8a4423b1267655) Change-Id: I3728187bd8526cdf84f95b123e6fad5d6c5a8b3c
-rw-r--r--runtime/verifier/method_verifier.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index 085f741..e3999c1 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;
}
}