--- old/src/hotspot/share/gc/serial/serialHeap.cpp 2020-08-25 10:54:37.023781478 +0200 +++ new/src/hotspot/share/gc/serial/serialHeap.cpp 2020-08-25 10:54:36.471772177 +0200 @@ -90,8 +90,8 @@ } void SerialHeap::young_process_roots(StrongRootsScope* scope, - OopsInGenClosure* root_closure, - OopsInGenClosure* old_gen_closure, + OopIterateClosure* root_closure, + OopIterateClosure* old_gen_closure, CLDClosure* cld_closure) { MarkingCodeBlobClosure mark_code_closure(root_closure, CodeBlobToOopClosure::FixRelocations); @@ -99,15 +99,13 @@ cld_closure, cld_closure, &mark_code_closure); if (_process_strong_tasks->try_claim_task(GCH_PS_younger_gens)) { - root_closure->reset_generation(); + } // When collection is parallel, all threads get to cooperate to do // old generation scanning. - old_gen_closure->set_generation(_old_gen); rem_set()->at_younger_refs_iterate(); old_gen()->younger_refs_iterate(old_gen_closure, scope->n_threads()); - old_gen_closure->reset_generation(); _process_strong_tasks->all_tasks_completed(scope->n_threads()); }