--- old/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2020-02-14 18:02:37.139594322 +0100 +++ new/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2020-02-14 18:02:36.927591376 +0100 @@ -261,16 +261,12 @@ } G1CMRootMemRegions::G1CMRootMemRegions(uint const max_regions) : - _root_regions(NEW_C_HEAP_ARRAY(MemRegion, max_regions, mtGC)), + _root_regions(MemRegion::create(max_regions, mtGC)), _max_regions(max_regions), _num_root_regions(0), _claimed_root_regions(0), _scan_in_progress(false), - _should_abort(false) { - for (uint i = 0; i < max_regions; i++) { - ::new (&_root_regions[i]) MemRegion(); - } -} + _should_abort(false) { } G1CMRootMemRegions::~G1CMRootMemRegions() { FREE_C_HEAP_ARRAY(MemRegion, _root_regions);