--- old/src/hotspot/share/gc/shared/cardTableRS.cpp 2020-08-25 10:03:53.564501625 +0200 +++ new/src/hotspot/share/gc/shared/cardTableRS.cpp 2020-08-25 10:03:53.388498659 +0200 @@ -112,13 +112,10 @@ } } -void CardTableRS::younger_refs_iterate(Generation* g, - OopsInGenClosure* blk, - uint n_threads) { +void CardTableRS::at_younger_refs_iterate() { // The indexing in this array is slightly odd. We want to access // the old generation record here, which is at index 2. _last_cur_val_in_gen[2] = cur_youngergen_card_val(); - g->younger_refs_iterate(blk, n_threads); } inline bool ClearNoncleanCardWrapper::clear_card(CardValue* entry) { @@ -245,12 +242,13 @@ } void CardTableRS::younger_refs_in_space_iterate(Space* sp, - OopsInGenClosure* cl, + HeapWord* gen_boundary, + OopIterateClosure* cl, uint n_threads) { verify_used_region_at_save_marks(sp); const MemRegion urasm = sp->used_region_at_save_marks(); - non_clean_card_iterate_possibly_parallel(sp, urasm, cl, this, n_threads); + non_clean_card_iterate_possibly_parallel(sp, gen_boundary, urasm, cl, this, n_threads); } #ifdef ASSERT @@ -624,8 +622,9 @@ void CardTableRS::non_clean_card_iterate_possibly_parallel( Space* sp, + HeapWord* gen_boundary, MemRegion mr, - OopsInGenClosure* cl, + OopIterateClosure* cl, CardTableRS* ct, uint n_threads) { @@ -638,7 +637,7 @@ // This is the single-threaded version used by DefNew. const bool parallel = false; - DirtyCardToOopClosure* dcto_cl = sp->new_dcto_cl(cl, precision(), cl->gen_boundary(), parallel); + DirtyCardToOopClosure* dcto_cl = sp->new_dcto_cl(cl, precision(), gen_boundary, parallel); ClearNoncleanCardWrapper clear_cl(dcto_cl, ct, parallel); clear_cl.do_MemRegion(mr); @@ -647,7 +646,7 @@ } void CardTableRS::non_clean_card_iterate_parallel_work(Space* sp, MemRegion mr, - OopsInGenClosure* cl, CardTableRS* ct, + OopIterateClosure* cl, CardTableRS* ct, uint n_threads) { fatal("Parallel gc not supported here."); }