Less redundant verification.

~3 less objects verified per object scanned in the GC. Helps the
irogers dogfood experience.

Change-Id: I6efeab7842a6c702adecef73fb573c19291fecf2
diff --git a/runtime/gc/collector/semi_space.cc b/runtime/gc/collector/semi_space.cc
index cd9e217..d4f47ef 100644
--- a/runtime/gc/collector/semi_space.cc
+++ b/runtime/gc/collector/semi_space.cc
@@ -669,7 +669,8 @@
 
   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 281d4ec..527b8a6 100644
--- a/runtime/mirror/object-inl.h
+++ b/runtime/mirror/object-inl.h
@@ -612,17 +612,17 @@
                                     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());
     }
   }