summaryrefslogtreecommitdiff
path: root/runtime/mirror/array.h
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2016-02-01 20:15:11 -0800
committer Mathieu Chartier <mathieuc@google.com> 2016-02-02 15:43:05 -0800
commitdfe02f6aafee264478d510b9742ee266ea52e8a8 (patch)
treed56729901410de2b5cea9395c4686b49c38b245d /runtime/mirror/array.h
parent85fdcda926fbab0e5a7b3e8b3541f5d225b2bcdb (diff)
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
Diffstat (limited to 'runtime/mirror/array.h')
-rw-r--r--runtime/mirror/array.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/runtime/mirror/array.h b/runtime/mirror/array.h
index 2bd6c5b9a1..9a21ec255c 100644
--- a/runtime/mirror/array.h
+++ b/runtime/mirror/array.h
@@ -183,7 +183,9 @@ class MANAGED PrimitiveArray : public Array {
// Either an IntArray or a LongArray.
class PointerArray : public Array {
public:
- template<typename T>
+ template<typename T,
+ VerifyObjectFlags kVerifyFlags = kVerifyNone,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier>
T GetElementPtrSize(uint32_t idx, size_t ptr_size)
SHARED_REQUIRES(Locks::mutator_lock_);
@@ -196,7 +198,9 @@ class PointerArray : public Array {
// Fixup the pointers in the dest arrays by passing our pointers through the visitor. Only copies
// to dest if visitor(source_ptr) != source_ptr.
- template <typename Visitor>
+ template <VerifyObjectFlags kVerifyFlags = kVerifyNone,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier,
+ typename Visitor>
void Fixup(mirror::PointerArray* dest, size_t pointer_size, const Visitor& visitor)
SHARED_REQUIRES(Locks::mutator_lock_);
};