diff options
| author | 2021-10-12 15:30:43 -0700 | |
|---|---|---|
| committer | 2022-08-10 18:06:05 +0000 | |
| commit | 528b169d1351f3606778ba10fe9ae8fcecf7a7c4 (patch) | |
| tree | 6a121d62896bfacdd23d704951c86919d68633df /runtime/mirror/object_array.h | |
| parent | ad78038a36009b56cd03f2c58387574fe20ff36f (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.h | 4 |
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); |