diff options
Diffstat (limited to 'runtime/mirror/object.cc')
-rw-r--r-- | runtime/mirror/object.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/runtime/mirror/object.cc b/runtime/mirror/object.cc index b28978603c..3fa71c66d1 100644 --- a/runtime/mirror/object.cc +++ b/runtime/mirror/object.cc @@ -248,8 +248,8 @@ void Object::CheckFieldAssignmentImpl(MemberOffset field_offset, ObjPtr<Object> return; } for (ObjPtr<Class> cur = c; cur != nullptr; cur = cur->GetSuperClass()) { - for (ArtField& field : cur->GetIFields()) { - if (field.GetOffset().Int32Value() == field_offset.Int32Value()) { + for (ArtField& field : cur->GetFields()) { + if (!field.IsStatic() && field.GetOffset().Int32Value() == field_offset.Int32Value()) { CHECK_NE(field.GetTypeAsPrimitiveType(), Primitive::kPrimNot); // TODO: resolve the field type for moving GC. ObjPtr<mirror::Class> field_type = @@ -266,8 +266,8 @@ void Object::CheckFieldAssignmentImpl(MemberOffset field_offset, ObjPtr<Object> return; } if (IsClass()) { - for (ArtField& field : AsClass()->GetSFields()) { - if (field.GetOffset().Int32Value() == field_offset.Int32Value()) { + for (ArtField& field : AsClass()->GetFields()) { + if (field.IsStatic() && field.GetOffset().Int32Value() == field_offset.Int32Value()) { CHECK_NE(field.GetTypeAsPrimitiveType(), Primitive::kPrimNot); // TODO: resolve the field type for moving GC. ObjPtr<mirror::Class> field_type = |