diff options
| author | 2022-08-10 18:32:01 +0000 | |
|---|---|---|
| committer | 2022-08-10 18:32:01 +0000 | |
| commit | fc585e2673b2f18b9f91f76153c9eaaa1eb207d1 (patch) | |
| tree | f53d47bb0dfd4adeaabf6ca712fad323472bee0d /runtime/mirror/object.h | |
| parent | c9f62e0acd5352e86cf9350112b806e58f26b834 (diff) | |
| parent | 528b169d1351f3606778ba10fe9ae8fcecf7a7c4 (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.h | 11 |
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_); |