< prev index next >
src/hotspot/share/gc/shared/cardGeneration.cpp
Print this page
@@ -305,10 +305,15 @@
void CardGeneration::space_iterate(SpaceClosure* blk,
bool usedOnly) {
blk->do_space(space());
}
-void CardGeneration::younger_refs_iterate(OopsInGenClosure* blk, uint n_threads) {
- blk->set_generation(this);
- younger_refs_in_space_iterate(space(), blk, n_threads);
- blk->reset_generation();
+void CardGeneration::younger_refs_iterate(OopIterateClosure* blk, uint n_threads) {
+ // Apply "cl->do_oop" to (the address of) (exactly) all the ref fields in
+ // "sp" that point into younger generations.
+ // The iteration is only over objects allocated at the start of the
+ // iterations; objects allocated as a result of applying the closure are
+ // not included.
+
+ HeapWord* gen_boundary = reserved().start();
+ _rs->younger_refs_in_space_iterate(space(), gen_boundary, blk, n_threads);
}
< prev index next >