From 97509954404d031594b2ecbda607314d169d512e Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Mon, 13 Jul 2015 14:35:43 -0700 Subject: Clean up GC callbacks to be virtual methods Change-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735 --- runtime/gc/reference_queue.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'runtime/gc/reference_queue.h') diff --git a/runtime/gc/reference_queue.h b/runtime/gc/reference_queue.h index c45be8591f..7d9ddf698e 100644 --- a/runtime/gc/reference_queue.h +++ b/runtime/gc/reference_queue.h @@ -36,6 +36,10 @@ class Reference; namespace gc { +namespace collector { +class GarbageCollector; +} // namespace collector + class Heap; // Used to temporarily store java.lang.ref.Reference(s) during GC and prior to queueing on the @@ -65,20 +69,19 @@ class ReferenceQueue { // Enqueues finalizer references with white referents. White referents are blackened, moved to // the zombie field, and the referent field is cleared. void EnqueueFinalizerReferences(ReferenceQueue* cleared_references, - IsHeapReferenceMarkedCallback* is_marked_callback, - MarkObjectCallback* mark_object_callback, void* arg) + collector::GarbageCollector* collector) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); // Walks the reference list marking any references subject to the reference clearing policy. // References with a black referent are removed from the list. References with white referents // biased toward saving are blackened and also removed from the list. - void ForwardSoftReferences(IsHeapReferenceMarkedCallback* preserve_callback, void* arg) + void ForwardSoftReferences(MarkObjectVisitor* visitor) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); // Unlink the reference list clearing references objects with white referents. Cleared references // registered to a reference queue are scheduled for appending by the heap worker thread. void ClearWhiteReferences(ReferenceQueue* cleared_references, - IsHeapReferenceMarkedCallback* is_marked_callback, void* arg) + collector::GarbageCollector* collector) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); void Dump(std::ostream& os) const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); @@ -95,7 +98,7 @@ class ReferenceQueue { } // Visits list_, currently only used for the mark compact GC. - void UpdateRoots(IsMarkedCallback* callback, void* arg) + void UpdateRoots(IsMarkedVisitor* visitor) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); private: -- cgit v1.2.3-59-g8ed1b