summaryrefslogtreecommitdiff
path: root/runtime/mirror/object_array.h
diff options
context:
space:
mode:
author Lokesh Gidra <lokeshgidra@google.com> 2021-10-12 15:30:43 -0700
committer Lokesh Gidra <lokeshgidra@google.com> 2022-08-10 18:06:05 +0000
commit528b169d1351f3606778ba10fe9ae8fcecf7a7c4 (patch)
tree6a121d62896bfacdd23d704951c86919d68633df /runtime/mirror/object_array.h
parentad78038a36009b56cd03f2c58387574fe20ff36f (diff)
Stop-the-world compaction phase
The CL implements the core logic for per-page compaction, but in a stop-the-world pause. Even though it's performed during a pause, it handles every page independetly as the final goal is to have a concurrent implementation. This CL doesn't handle updating the native roots. Also, the black allocations since the marking-phase pause are not handled yet. Test: art/test/testrunner/testrunner.py Bug: 160737021 Change-Id: Ib0be20663e0f9f76ee66a2a42180c4bd3579e41b
Diffstat (limited to 'runtime/mirror/object_array.h')
-rw-r--r--runtime/mirror/object_array.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/mirror/object_array.h b/runtime/mirror/object_array.h
index a20c86b82e..9a53708018 100644
--- a/runtime/mirror/object_array.h
+++ b/runtime/mirror/object_array.h
@@ -150,6 +150,10 @@ class MANAGED ObjectArray: public Array {
// REQUIRES_SHARED(Locks::mutator_lock_).
template<typename Visitor>
void VisitReferences(const Visitor& visitor) NO_THREAD_SAFETY_ANALYSIS;
+ template<typename Visitor>
+ void VisitReferences(const Visitor& visitor,
+ MemberOffset begin,
+ MemberOffset end) NO_THREAD_SAFETY_ANALYSIS;
friend class Object; // For VisitReferences
DISALLOW_IMPLICIT_CONSTRUCTORS(ObjectArray);