diff -r 2cd9b35e0eda -r 539c597ee0fa hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp --- a/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp Mon Apr 18 22:40:47 2016 +0200 +++ b/hotspot/src/share/vm/gc/g1/g1CollectedHeap.cpp Fri Mar 18 15:20:43 2016 +0100 @@ -45,6 +45,7 @@ #include "gc/g1/g1MarkSweep.hpp" #include "gc/g1/g1OopClosures.inline.hpp" #include "gc/g1/g1ParScanThreadState.inline.hpp" +#include "gc/g1/g1Policy.hpp" #include "gc/g1/g1RegionToSpaceMapper.hpp" #include "gc/g1/g1RemSet.inline.hpp" #include "gc/g1/g1RootClosures.hpp" @@ -1744,10 +1745,11 @@ // Public methods. -G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) : +G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* collector_policy) : CollectedHeap(), - _g1_policy(policy_), - _collection_set(this), + _collector_policy(collector_policy), + _g1_policy(create_g1_policy()), + _collection_set(this, _g1_policy), _dirty_card_queue_set(false), _is_alive_closure_cm(this), _is_alive_closure_stw(this), @@ -2134,7 +2136,7 @@ } CollectorPolicy* G1CollectedHeap::collector_policy() const { - return g1_policy(); + return _collector_policy; } size_t G1CollectedHeap::capacity() const { @@ -4859,7 +4861,7 @@ // head and length, and unlink any young regions in the code below _young_list->clear(); - G1CollectorPolicy* policy = g1_policy(); + G1Policy* policy = g1_policy(); double start_sec = os::elapsedTime(); bool non_young = true;