summaryrefslogtreecommitdiff
path: root/runtime/mirror/object.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/mirror/object.cc')
-rw-r--r--runtime/mirror/object.cc20
1 files changed, 8 insertions, 12 deletions
diff --git a/runtime/mirror/object.cc b/runtime/mirror/object.cc
index 80decaa53d..87fb5ba329 100644
--- a/runtime/mirror/object.cc
+++ b/runtime/mirror/object.cc
@@ -208,15 +208,13 @@ void Object::CheckFieldAssignmentImpl(MemberOffset field_offset, Object* new_val
return;
}
for (Class* cur = c; cur != nullptr; cur = cur->GetSuperClass()) {
- ArtField* fields = cur->GetIFields();
- for (size_t i = 0, count = cur->NumInstanceFields(); i < count; ++i) {
+ for (ArtField& field : cur->GetIFields()) {
StackHandleScope<1> hs(Thread::Current());
Handle<Object> h_object(hs.NewHandle(new_value));
- ArtField* field = &fields[i];
- if (field->GetOffset().Int32Value() == field_offset.Int32Value()) {
- CHECK_NE(field->GetTypeAsPrimitiveType(), Primitive::kPrimNot);
+ if (field.GetOffset().Int32Value() == field_offset.Int32Value()) {
+ CHECK_NE(field.GetTypeAsPrimitiveType(), Primitive::kPrimNot);
// TODO: resolve the field type for moving GC.
- mirror::Class* field_type = field->GetType<!kMovingCollector>();
+ mirror::Class* field_type = field.GetType<!kMovingCollector>();
if (field_type != nullptr) {
CHECK(field_type->IsAssignableFrom(new_value->GetClass()));
}
@@ -229,13 +227,11 @@ void Object::CheckFieldAssignmentImpl(MemberOffset field_offset, Object* new_val
return;
}
if (IsClass()) {
- ArtField* fields = AsClass()->GetSFields();
- for (size_t i = 0, count = AsClass()->NumStaticFields(); i < count; ++i) {
- ArtField* field = &fields[i];
- if (field->GetOffset().Int32Value() == field_offset.Int32Value()) {
- CHECK_NE(field->GetTypeAsPrimitiveType(), Primitive::kPrimNot);
+ for (ArtField& field : AsClass()->GetSFields()) {
+ if (field.GetOffset().Int32Value() == field_offset.Int32Value()) {
+ CHECK_NE(field.GetTypeAsPrimitiveType(), Primitive::kPrimNot);
// TODO: resolve the field type for moving GC.
- mirror::Class* field_type = field->GetType<!kMovingCollector>();
+ mirror::Class* field_type = field.GetType<!kMovingCollector>();
if (field_type != nullptr) {
CHECK(field_type->IsAssignableFrom(new_value->GetClass()));
}