< prev index next >
src/hotspot/share/gc/shared/cardTableRS.hpp
Print this page
@@ -30,11 +30,10 @@
#include "oops/oop.hpp"
class DirtyCardToOopClosure;
class Generation;
class Space;
-class OopsInGenClosure;
// Helper to remember modified oops in all clds.
class CLDRemSet {
bool _accumulate_modified_oops;
public:
@@ -102,21 +101,19 @@
CardTableRS(MemRegion whole_heap, bool scanned_concurrently);
~CardTableRS();
CLDRemSet* cld_rem_set() { return &_cld_rem_set; }
- void younger_refs_in_space_iterate(Space* sp, OopsInGenClosure* cl, uint n_threads);
+ void younger_refs_in_space_iterate(Space* sp, HeapWord* gen_boundary, OopIterateClosure* cl, uint n_threads);
virtual void verify_used_region_at_save_marks(Space* sp) const NOT_DEBUG_RETURN;
// Override.
void prepare_for_younger_refs_iterate(bool parallel);
- // Card table entries are cleared before application; "blk" is
- // responsible for dirtying if the oop is still older-to-younger after
- // closure application.
- void younger_refs_iterate(Generation* g, OopsInGenClosure* blk, uint n_threads);
+ // Card table entries are cleared before application;
+ void at_younger_refs_iterate();
void inline_write_ref_field_gc(void* field, oop new_val) {
CardValue* byte = byte_for(field);
*byte = youngergen_card;
}
@@ -163,18 +160,19 @@
bool card_may_have_been_dirty(CardValue cv);
// Iterate over the portion of the card-table which covers the given
// region mr in the given space and apply cl to any dirty sub-regions
// of mr. Clears the dirty cards as they are processed.
- void non_clean_card_iterate_possibly_parallel(Space* sp, MemRegion mr,
- OopsInGenClosure* cl, CardTableRS* ct,
+ void non_clean_card_iterate_possibly_parallel(Space* sp, HeapWord* gen_boundary,
+ MemRegion mr,
+ OopIterateClosure* cl, CardTableRS* ct,
uint n_threads);
// Work method used to implement non_clean_card_iterate_possibly_parallel()
// above in the parallel case.
virtual void non_clean_card_iterate_parallel_work(Space* sp, MemRegion mr,
- OopsInGenClosure* cl, CardTableRS* ct,
+ OopIterateClosure* cl, CardTableRS* ct,
uint n_threads);
// This is an array, one element per covered region of the card table.
// Each entry is itself an array, with one element per chunk in the
// covered region. Each entry of these arrays is the lowest non-clean
< prev index next >