From 528b169d1351f3606778ba10fe9ae8fcecf7a7c4 Mon Sep 17 00:00:00 2001 From: Lokesh Gidra Date: Tue, 12 Oct 2021 15:30:43 -0700 Subject: 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 --- runtime/mirror/object_array.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'runtime/mirror/object_array.h') 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 void VisitReferences(const Visitor& visitor) NO_THREAD_SAFETY_ANALYSIS; + template + void VisitReferences(const Visitor& visitor, + MemberOffset begin, + MemberOffset end) NO_THREAD_SAFETY_ANALYSIS; friend class Object; // For VisitReferences DISALLOW_IMPLICIT_CONSTRUCTORS(ObjectArray); -- cgit v1.2.3-59-g8ed1b