Fix valgrind-test-art-host-gtest-object_test.

This had been failing with the error message:

object_test F  2360  2360 art/runtime/gc/heap-inl.h:139] Check failed: !running_on_valgrind_

Then, this failing DCHECK was removed in a refactoring in
cbb2d20bea2861f244da2e2318d8c088300a3710, I believe.

This change adds back a DCHECK that's equivalent to the old one and
fixes ObjectTest.CheckAndAllocArrayFromCode by replacing a
CheckAndAllocArrayFromCode call with a
CheckAndAllocArrayFromCodeInstrumented call.

Bug: 11670287
Change-Id: Ica2f707b9a9ff48ef973b9e326a4d9786c1781f8
diff --git a/runtime/gc/heap-inl.h b/runtime/gc/heap-inl.h
index 5eda0b9..6e9b04a 100644
--- a/runtime/gc/heap-inl.h
+++ b/runtime/gc/heap-inl.h
@@ -116,6 +116,9 @@
     if (UNLIKELY(running_on_valgrind_ && allocator_type == kAllocatorTypeFreeList)) {
       return non_moving_space_->Alloc(self, alloc_size, bytes_allocated);
     }
+  } else {
+    // If running on valgrind, we should be using the instrumented path.
+    DCHECK(!running_on_valgrind_);
   }
   mirror::Object* ret;
   switch (allocator_type) {
diff --git a/runtime/mirror/object_test.cc b/runtime/mirror/object_test.cc
index 8272ff8..3637181 100644
--- a/runtime/mirror/object_test.cc
+++ b/runtime/mirror/object_test.cc
@@ -221,8 +221,8 @@
       java_lang_dex_file_->GetIndexForStringId(*string_id));
   ASSERT_TRUE(type_id != NULL);
   uint32_t type_idx = java_lang_dex_file_->GetIndexForTypeId(*type_id);
-  Object* array = CheckAndAllocArrayFromCode(type_idx, sort, 3, Thread::Current(), false,
-                                             Runtime::Current()->GetHeap()->GetCurrentAllocator());
+  Object* array = CheckAndAllocArrayFromCodeInstrumented(type_idx, sort, 3, Thread::Current(), false,
+                                                         Runtime::Current()->GetHeap()->GetCurrentAllocator());
   EXPECT_TRUE(array->IsArrayInstance());
   EXPECT_EQ(3, array->AsArray()->GetLength());
   EXPECT_TRUE(array->GetClass()->IsArrayClass());