summaryrefslogtreecommitdiff
path: root/runtime/mirror/object.h
diff options
context:
space:
mode:
author Lokesh Gidra <lokeshgidra@google.com> 2022-08-10 18:32:01 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-08-10 18:32:01 +0000
commitfc585e2673b2f18b9f91f76153c9eaaa1eb207d1 (patch)
treef53d47bb0dfd4adeaabf6ca712fad323472bee0d /runtime/mirror/object.h
parentc9f62e0acd5352e86cf9350112b806e58f26b834 (diff)
parent528b169d1351f3606778ba10fe9ae8fcecf7a7c4 (diff)
Stop-the-world compaction phase am: 528b169d13
Original change: https://android-review.googlesource.com/c/platform/art/+/1868127 Change-Id: I44bbfbbfe4973f7c64981f4f9a25435a52095c08 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'runtime/mirror/object.h')
-rw-r--r--runtime/mirror/object.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/mirror/object.h b/runtime/mirror/object.h
index ac7274588d..d83f3d6b00 100644
--- a/runtime/mirror/object.h
+++ b/runtime/mirror/object.h
@@ -647,6 +647,17 @@ class MANAGED LOCKABLE Object {
typename JavaLangRefVisitor = VoidFunctor>
void VisitReferences(const Visitor& visitor, const JavaLangRefVisitor& ref_visitor)
NO_THREAD_SAFETY_ANALYSIS;
+ // VisitReferences version for compaction. It is invoked with from-space
+ // object so that portions of the object, like klass and length (for arrays),
+ // can be accessed without causing cascading faults.
+ template <bool kFetchObjSize = true,
+ bool kVisitNativeRoots = true,
+ VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags,
+ ReadBarrierOption kReadBarrierOption = kWithReadBarrier,
+ typename Visitor>
+ size_t VisitRefsForCompaction(const Visitor& visitor,
+ MemberOffset begin,
+ MemberOffset end) NO_THREAD_SAFETY_ANALYSIS;
ArtField* FindFieldByOffset(MemberOffset offset) REQUIRES_SHARED(Locks::mutator_lock_);