From e4e23c0b0cfebd01f17732b6686a74f9e437e978 Mon Sep 17 00:00:00 2001 From: Hiroshi Yamauchi Date: Fri, 6 Dec 2013 13:38:43 -0800 Subject: 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 --- runtime/gc/heap-inl.h | 3 +++ runtime/mirror/object_test.cc | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'runtime') 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 @@ inline mirror::Object* Heap::TryToAllocate(Thread* self, AllocatorType allocator 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 @@ TEST_F(ObjectTest, CheckAndAllocArrayFromCode) { 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()); -- cgit v1.1