704 _young_gen->oop_since_save_marks_iterate##nv_suffix(cur); \
705 _old_gen->oop_since_save_marks_iterate##nv_suffix(older); \
706 } else { \
707 _old_gen->oop_since_save_marks_iterate##nv_suffix(cur); \
708 } \
709 }
710
711 ALL_SINCE_SAVE_MARKS_CLOSURES(GCH_SINCE_SAVE_MARKS_ITERATE_DEFN)
712
713 #undef GCH_SINCE_SAVE_MARKS_ITERATE_DEFN
714
715 bool GenCollectedHeap::no_allocs_since_save_marks() {
716 return _young_gen->no_allocs_since_save_marks() &&
717 _old_gen->no_allocs_since_save_marks();
718 }
719
720 bool GenCollectedHeap::supports_inline_contig_alloc() const {
721 return _young_gen->supports_inline_contig_alloc();
722 }
723
724 HeapWord** GenCollectedHeap::top_addr() const {
725 return _young_gen->top_addr();
726 }
727
728 HeapWord** GenCollectedHeap::end_addr() const {
729 return _young_gen->end_addr();
730 }
731
732 // public collection interfaces
733
734 void GenCollectedHeap::collect(GCCause::Cause cause) {
735 if (should_do_concurrent_full_gc(cause)) {
736 #if INCLUDE_ALL_GCS
737 // Mostly concurrent full collection.
738 collect_mostly_concurrent(cause);
739 #else // INCLUDE_ALL_GCS
740 ShouldNotReachHere();
741 #endif // INCLUDE_ALL_GCS
742 } else if (cause == GCCause::_wb_young_gc) {
743 // Young collection for the WhiteBox API.
744 collect(cause, YoungGen);
|
704 _young_gen->oop_since_save_marks_iterate##nv_suffix(cur); \
705 _old_gen->oop_since_save_marks_iterate##nv_suffix(older); \
706 } else { \
707 _old_gen->oop_since_save_marks_iterate##nv_suffix(cur); \
708 } \
709 }
710
711 ALL_SINCE_SAVE_MARKS_CLOSURES(GCH_SINCE_SAVE_MARKS_ITERATE_DEFN)
712
713 #undef GCH_SINCE_SAVE_MARKS_ITERATE_DEFN
714
715 bool GenCollectedHeap::no_allocs_since_save_marks() {
716 return _young_gen->no_allocs_since_save_marks() &&
717 _old_gen->no_allocs_since_save_marks();
718 }
719
720 bool GenCollectedHeap::supports_inline_contig_alloc() const {
721 return _young_gen->supports_inline_contig_alloc();
722 }
723
724 HeapWord* volatile* GenCollectedHeap::top_addr() const {
725 return _young_gen->top_addr();
726 }
727
728 HeapWord** GenCollectedHeap::end_addr() const {
729 return _young_gen->end_addr();
730 }
731
732 // public collection interfaces
733
734 void GenCollectedHeap::collect(GCCause::Cause cause) {
735 if (should_do_concurrent_full_gc(cause)) {
736 #if INCLUDE_ALL_GCS
737 // Mostly concurrent full collection.
738 collect_mostly_concurrent(cause);
739 #else // INCLUDE_ALL_GCS
740 ShouldNotReachHere();
741 #endif // INCLUDE_ALL_GCS
742 } else if (cause == GCCause::_wb_young_gc) {
743 // Young collection for the WhiteBox API.
744 collect(cause, YoungGen);
|