summaryrefslogtreecommitdiffstats
path: root/runtime/mirror/object_array.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-02-18 14:37:05 -0800
committerMathieu Chartier <mathieuc@google.com>2014-03-24 16:35:21 -0700
commit407f702da4f867c074fc3c8c688b8f8c32279eff (patch)
tree6a856b64f655f5aab1c538eab28e9c69f9010122 /runtime/mirror/object_array.h
parentd201dec03334bcc25add81704981a78c19927d87 (diff)
downloadandroid_art-407f702da4f867c074fc3c8c688b8f8c32279eff.tar.gz
android_art-407f702da4f867c074fc3c8c688b8f8c32279eff.tar.bz2
android_art-407f702da4f867c074fc3c8c688b8f8c32279eff.zip
Refactor object reference visiting logic.
Refactored the reference visiting logic to be in mirror::Object instead of MarkSweep. Change-Id: I773249478dc463d83b465e85c2402320488577c0
Diffstat (limited to 'runtime/mirror/object_array.h')
-rw-r--r--runtime/mirror/object_array.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/mirror/object_array.h b/runtime/mirror/object_array.h
index 7f9e716e6e..5ff049081f 100644
--- a/runtime/mirror/object_array.h
+++ b/runtime/mirror/object_array.h
@@ -78,6 +78,11 @@ class MANAGED ObjectArray : public Array {
ObjectArray<T>* CopyOf(Thread* self, int32_t new_length)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+ // TODO fix thread safety analysis broken by the use of template. This should be
+ // SHARED_LOCKS_REQUIRED(Locks::mutator_lock_).
+ template<const bool kVisitClass, typename Visitor>
+ void VisitReferences(const Visitor& visitor) NO_THREAD_SAFETY_ANALYSIS;
+
private:
static MemberOffset OffsetOfElement(int32_t i);