49 _card_counts(NULL), _card_epochs(NULL), |
49 _card_counts(NULL), _card_epochs(NULL), |
50 _n_card_counts(0), _max_cards(0), _max_n_card_counts(0), |
50 _n_card_counts(0), _max_cards(0), _max_n_card_counts(0), |
51 _cache_size_index(0), _expand_card_counts(false), |
51 _cache_size_index(0), _expand_card_counts(false), |
52 _hot_cache(NULL), |
52 _hot_cache(NULL), |
53 _def_use_cache(false), _use_cache(false), |
53 _def_use_cache(false), _use_cache(false), |
54 _n_periods(0), |
54 // We initialize the epochs of the array to 0. By initializing |
|
55 // _n_periods to 1 and not 0 we automatically invalidate all the |
|
56 // entries on the array. Otherwise we might accidentally think that |
|
57 // we claimed a card that was in fact never set (see CR7033292). |
|
58 _n_periods(1), |
55 _threads(NULL), _n_threads(0) |
59 _threads(NULL), _n_threads(0) |
56 { |
60 { |
57 |
61 |
58 // Ergomonically select initial concurrent refinement parameters |
62 // Ergomonically select initial concurrent refinement parameters |
59 if (FLAG_IS_DEFAULT(G1ConcRefinementGreenZone)) { |
63 if (FLAG_IS_DEFAULT(G1ConcRefinementGreenZone)) { |