From dfe02f6aafee264478d510b9742ee266ea52e8a8 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Mon, 1 Feb 2016 20:15:11 -0800 Subject: Fix remaining read barrier issues in image relocation Added a way to disallow read barriers, this makes it easy to find the issues. Bug: 26786304 Change-Id: I7ebb50832686d03e096a979aae9741239371683f --- runtime/mirror/array-inl.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'runtime/mirror/array-inl.h') diff --git a/runtime/mirror/array-inl.h b/runtime/mirror/array-inl.h index b3439f7643..c6fa15de8c 100644 --- a/runtime/mirror/array-inl.h +++ b/runtime/mirror/array-inl.h @@ -370,15 +370,17 @@ inline void PrimitiveArray::Memcpy(int32_t dst_pos, PrimitiveArray* src, i } } -template +template inline T PointerArray::GetElementPtrSize(uint32_t idx, size_t ptr_size) { // C style casts here since we sometimes have T be a pointer, or sometimes an integer // (for stack traces). if (ptr_size == 8) { - return (T)static_cast(AsLongArray()->GetWithoutChecks(idx)); + return (T)static_cast( + AsLongArray()->GetWithoutChecks(idx)); } DCHECK_EQ(ptr_size, 4u); - return (T)static_cast(AsIntArray()->GetWithoutChecks(idx)); + return (T)static_cast( + AsIntArray()->GetWithoutChecks(idx)); } template @@ -401,12 +403,12 @@ inline void PointerArray::SetElementPtrSize(uint32_t idx, T* element, size_t ptr ptr_size); } -template +template inline void PointerArray::Fixup(mirror::PointerArray* dest, size_t pointer_size, const Visitor& visitor) { for (size_t i = 0, count = GetLength(); i < count; ++i) { - void* ptr = GetElementPtrSize(i, pointer_size); + void* ptr = GetElementPtrSize(i, pointer_size); void* new_ptr = visitor(ptr); if (ptr != new_ptr) { dest->SetElementPtrSize(i, new_ptr, pointer_size); -- cgit v1.2.3-59-g8ed1b