diff options
| -rw-r--r-- | runtime/gc/collector/semi_space.cc | 3 | ||||
| -rw-r--r-- | runtime/mirror/object-inl.h | 8 |
2 files changed, 6 insertions, 5 deletions
diff --git a/runtime/gc/collector/semi_space.cc b/runtime/gc/collector/semi_space.cc index cd9e217c0f..d4f47ef59b 100644 --- a/runtime/gc/collector/semi_space.cc +++ b/runtime/gc/collector/semi_space.cc @@ -669,7 +669,8 @@ class SemiSpaceMarkObjectVisitor { void operator()(Object* obj, MemberOffset offset, bool /* is_static */) const ALWAYS_INLINE EXCLUSIVE_LOCKS_REQUIRED(Locks::mutator_lock_, Locks::heap_bitmap_lock_) { - collector_->MarkObject(obj->GetFieldObjectReferenceAddr(offset)); + // Object was already verified when we scanned it. + collector_->MarkObject(obj->GetFieldObjectReferenceAddr<kVerifyNone>(offset)); } void operator()(mirror::Class* klass, mirror::Reference* ref) const diff --git a/runtime/mirror/object-inl.h b/runtime/mirror/object-inl.h index 281d4ec52c..527b8a65e9 100644 --- a/runtime/mirror/object-inl.h +++ b/runtime/mirror/object-inl.h @@ -612,17 +612,17 @@ inline void Object::VisitReferences(const Visitor& visitor, const JavaLangRefVisitor& ref_visitor) { mirror::Class* klass = GetClass<kVerifyFlags>(); if (UNLIKELY(klass == Class::GetJavaLangClass())) { - DCHECK_EQ(klass->GetClass(), Class::GetJavaLangClass()); + DCHECK_EQ(klass->GetClass<kVerifyNone>(), Class::GetJavaLangClass()); AsClass<kVerifyNone>()->VisitReferences<kVisitClass>(klass, visitor); } else if (UNLIKELY(klass->IsArrayClass<kVerifyFlags>())) { if (klass->IsObjectArrayClass<kVerifyNone>()) { - AsObjectArray<mirror::Object>()->VisitReferences<kVisitClass>(visitor); + AsObjectArray<mirror::Object, kVerifyNone>()->VisitReferences<kVisitClass>(visitor); } else if (kVisitClass) { visitor(this, ClassOffset(), false); } } else { - VisitFieldsReferences<kVisitClass, false>(klass->GetReferenceInstanceOffsets(), visitor); - if (UNLIKELY(klass->IsReferenceClass())) { + VisitInstanceFieldsReferences<kVisitClass>(klass, visitor); + if (UNLIKELY(klass->IsReferenceClass<kVerifyNone>())) { ref_visitor(klass, AsReference()); } } |