1790 verify_region_sets_optional();
1791
1792 // We should only reach here at the end of a Full GC which means we
1793 // should not not be holding to any GC alloc regions. The method
1794 // below will make sure of that and do any remaining clean up.
1795 _allocator->abandon_gc_alloc_regions();
1796
1797 // Instead of tearing down / rebuilding the free lists here, we
1798 // could instead use the remove_all_pending() method on free_list to
1799 // remove only the ones that we need to remove.
1800 tear_down_region_sets(true /* free_list_only */);
1801 shrink_helper(shrink_bytes);
1802 rebuild_region_sets(true /* free_list_only */);
1803
1804 _hrm.verify_optional();
1805 verify_region_sets_optional();
1806 }
1807
1808 // Public methods.
1809
1810 #ifdef _MSC_VER // the use of 'this' below gets a warning, make it go away
1811 #pragma warning( disable:4355 ) // 'this' : used in base member initializer list
1812 #endif // _MSC_VER
1813
1814
1815 G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
1816 CollectedHeap(),
1817 _g1_policy(policy_),
1818 _dirty_card_queue_set(false),
1819 _into_cset_dirty_card_queue_set(false),
1820 _is_alive_closure_cm(this),
1821 _is_alive_closure_stw(this),
1822 _ref_processor_cm(NULL),
1823 _ref_processor_stw(NULL),
1824 _bot_shared(NULL),
1825 _cg1r(NULL),
1826 _g1mm(NULL),
1827 _refine_cte_cl(NULL),
1828 _secondary_free_list("Secondary Free List", new SecondaryFreeRegionListMtSafeChecker()),
1829 _old_set("Old Set", false /* humongous */, new OldRegionSetMtSafeChecker()),
1830 _humongous_set("Master Humongous Set", true /* humongous */, new HumongousRegionSetMtSafeChecker()),
1831 _humongous_reclaim_candidates(),
1832 _has_humongous_reclaim_candidates(false),
1833 _archive_allocator(NULL),
1834 _free_regions_coming(false),
|
1790 verify_region_sets_optional();
1791
1792 // We should only reach here at the end of a Full GC which means we
1793 // should not not be holding to any GC alloc regions. The method
1794 // below will make sure of that and do any remaining clean up.
1795 _allocator->abandon_gc_alloc_regions();
1796
1797 // Instead of tearing down / rebuilding the free lists here, we
1798 // could instead use the remove_all_pending() method on free_list to
1799 // remove only the ones that we need to remove.
1800 tear_down_region_sets(true /* free_list_only */);
1801 shrink_helper(shrink_bytes);
1802 rebuild_region_sets(true /* free_list_only */);
1803
1804 _hrm.verify_optional();
1805 verify_region_sets_optional();
1806 }
1807
1808 // Public methods.
1809
1810 G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
1811 CollectedHeap(),
1812 _g1_policy(policy_),
1813 _dirty_card_queue_set(false),
1814 _into_cset_dirty_card_queue_set(false),
1815 _is_alive_closure_cm(this),
1816 _is_alive_closure_stw(this),
1817 _ref_processor_cm(NULL),
1818 _ref_processor_stw(NULL),
1819 _bot_shared(NULL),
1820 _cg1r(NULL),
1821 _g1mm(NULL),
1822 _refine_cte_cl(NULL),
1823 _secondary_free_list("Secondary Free List", new SecondaryFreeRegionListMtSafeChecker()),
1824 _old_set("Old Set", false /* humongous */, new OldRegionSetMtSafeChecker()),
1825 _humongous_set("Master Humongous Set", true /* humongous */, new HumongousRegionSetMtSafeChecker()),
1826 _humongous_reclaim_candidates(),
1827 _has_humongous_reclaim_candidates(false),
1828 _archive_allocator(NULL),
1829 _free_regions_coming(false),
|