< 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 >