src/share/vm/memory/defNewGeneration.cpp

Print this page
rev 6796 : [mq]: templateOopIterate

@@ -28,13 +28,14 @@
 #include "gc_implementation/shared/gcHeapSummary.hpp"
 #include "gc_implementation/shared/gcTimer.hpp"
 #include "gc_implementation/shared/gcTraceTime.hpp"
 #include "gc_implementation/shared/gcTrace.hpp"
 #include "gc_implementation/shared/spaceDecorator.hpp"
+#include "gc_interface/collectedHeap.inline.hpp"
 #include "memory/defNewGeneration.inline.hpp"
 #include "memory/gcLocker.inline.hpp"
-#include "memory/genCollectedHeap.hpp"
+#include "memory/genCollectedHeap.inline.hpp"
 #include "memory/genOopClosures.inline.hpp"
 #include "memory/genRemSet.hpp"
 #include "memory/generationSpec.hpp"
 #include "memory/iterator.hpp"
 #include "memory/referencePolicy.hpp"

@@ -89,11 +90,11 @@
   _scan_cur_or_nonheap(cur), _scan_older(older)
 {}
 
 void DefNewGeneration::EvacuateFollowersClosure::do_void() {
   do {
-    _gch->oop_since_save_marks_iterate(_level, _scan_cur_or_nonheap,
+    _gch->gch_oop_since_save_marks_iterate<true>(_level, _scan_cur_or_nonheap,
                                        _scan_older);
   } while (!_gch->no_allocs_since_save_marks(_level));
 }
 
 DefNewGeneration::FastEvacuateFollowersClosure::

@@ -104,11 +105,11 @@
   _scan_cur_or_nonheap(cur), _scan_older(older)
 {}
 
 void DefNewGeneration::FastEvacuateFollowersClosure::do_void() {
   do {
-    _gch->oop_since_save_marks_iterate(_level, _scan_cur_or_nonheap,
+    _gch->gch_oop_since_save_marks_iterate<true>(_level, _scan_cur_or_nonheap,
                                        _scan_older);
   } while (!_gch->no_allocs_since_save_marks(_level));
   guarantee(_gen->promo_failure_scan_is_complete(), "Failed to finish scan");
 }
 

@@ -184,11 +185,11 @@
 
 DefNewGeneration::DefNewGeneration(ReservedSpace rs,
                                    size_t initial_size,
                                    int level,
                                    const char* policy)
-  : Generation(rs, initial_size, level),
+  : Generation(rs, initial_size, level, _dispatch_index_generation_def_new),
     _promo_failure_drain_in_progress(false),
     _should_allocate_from_space(false)
 {
   MemRegion cmr((HeapWord*)_virtual_space.low(),
                 (HeapWord*)_virtual_space.high());

@@ -820,11 +821,11 @@
 }
 
 void DefNewGeneration::drain_promo_failure_scan_stack() {
   while (!_promo_failure_scan_stack.is_empty()) {
      oop obj = _promo_failure_scan_stack.pop();
-     obj->oop_iterate(_promo_failure_scan_stack_closure);
+     obj->oop_iterate<false>(_promo_failure_scan_stack_closure);
   }
 }
 
 void DefNewGeneration::save_marks() {
   eden()->set_saved_mark();

@@ -844,26 +845,10 @@
   assert(eden()->saved_mark_at_top(), "Violated spec - alloc in eden");
   assert(from()->saved_mark_at_top(), "Violated spec - alloc in from");
   return to()->saved_mark_at_top();
 }
 
-#define DefNew_SINCE_SAVE_MARKS_DEFN(OopClosureType, nv_suffix) \
-                                                                \
-void DefNewGeneration::                                         \
-oop_since_save_marks_iterate##nv_suffix(OopClosureType* cl) {   \
-  cl->set_generation(this);                                     \
-  eden()->oop_since_save_marks_iterate##nv_suffix(cl);          \
-  to()->oop_since_save_marks_iterate##nv_suffix(cl);            \
-  from()->oop_since_save_marks_iterate##nv_suffix(cl);          \
-  cl->reset_generation();                                       \
-  save_marks();                                                 \
-}
-
-ALL_SINCE_SAVE_MARKS_CLOSURES(DefNew_SINCE_SAVE_MARKS_DEFN)
-
-#undef DefNew_SINCE_SAVE_MARKS_DEFN
-
 void DefNewGeneration::contribute_scratch(ScratchBlock*& list, Generation* requestor,
                                          size_t max_alloc_words) {
   if (requestor == this || _promotion_failed) return;
   assert(requestor->level() > level(), "DefNewGeneration must be youngest");