summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2017-12-04 10:14:08 -0800
committer Andreas Gampe <agampe@google.com> 2017-12-04 10:14:08 -0800
commit8ddb7f5c9a3fa2b31e87efcf785a1e427f042bbb (patch)
treed133e0d2a02643e2f554ebcd120e20e6521b8f7f
parentd57fdd82fccfa15933033646c9436313b399d528 (diff)
ART: Reorder null check in verifier
Do not execute DCHECK before null check. Bug: 69606743 Test: m test-art-host Change-Id: I63b49b003943d7e902adefd4763310e1541ce732
-rw-r--r--runtime/verifier/method_verifier.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index 978e51d7b0..be58a57c24 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -5155,10 +5155,11 @@ ArtField* MethodVerifier::GetQuickFieldAccess(const Instruction* inst, RegisterL
}
uint32_t field_offset = static_cast<uint32_t>(inst->VRegC_22c());
ArtField* const f = ArtField::FindInstanceFieldWithOffset(object_type.GetClass(), field_offset);
- DCHECK_EQ(f->GetOffset().Uint32Value(), field_offset);
if (f == nullptr) {
VLOG(verifier) << "Failed to find instance field at offset '" << field_offset
<< "' from '" << mirror::Class::PrettyDescriptor(object_type.GetClass()) << "'";
+ } else {
+ DCHECK_EQ(f->GetOffset().Uint32Value(), field_offset);
}
return f;
}