summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/verifier/method_verifier.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc
index e2a3335a79..60194532a6 100644
--- a/runtime/verifier/method_verifier.cc
+++ b/runtime/verifier/method_verifier.cc
@@ -3652,6 +3652,11 @@ mirror::ArtField* MethodVerifier::GetInstanceField(RegType& obj_type, int field_
} else if (obj_type.IsZero()) {
// Cannot infer and check type, however, access will cause null pointer exception
return field;
+ } else if (!obj_type.IsReferenceTypes()) {
+ // Trying to read a field from something that isn't a reference
+ Fail(VERIFY_ERROR_BAD_CLASS_HARD) << "instance field access on object that has "
+ << "non-reference type " << obj_type;
+ return NULL;
} else {
mirror::Class* klass = field->GetDeclaringClass();
RegType& field_klass =