36 #if INCLUDE_ALL_GCS |
36 #if INCLUDE_ALL_GCS |
37 #include "gc_implementation/g1/concurrentMark.hpp" |
37 #include "gc_implementation/g1/concurrentMark.hpp" |
38 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
38 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
39 #endif // INCLUDE_ALL_GCS |
39 #endif // INCLUDE_ALL_GCS |
40 |
40 |
41 CardTableRS::CardTableRS(MemRegion whole_heap, |
41 CardTableRS::CardTableRS(MemRegion whole_heap) : |
42 int max_covered_regions) : |
|
43 GenRemSet(), |
42 GenRemSet(), |
44 _cur_youngergen_card_val(youngergenP1_card), |
43 _cur_youngergen_card_val(youngergenP1_card) |
45 _regions_to_iterate(max_covered_regions - 1) |
|
46 { |
44 { |
47 #if INCLUDE_ALL_GCS |
45 #if INCLUDE_ALL_GCS |
48 if (UseG1GC) { |
46 if (UseG1GC) { |
49 _ct_bs = new G1SATBCardTableLoggingModRefBS(whole_heap, |
47 _ct_bs = new G1SATBCardTableLoggingModRefBS(whole_heap); |
50 max_covered_regions); |
|
51 } else { |
48 } else { |
52 _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); |
49 _ct_bs = new CardTableModRefBSForCTRS(whole_heap); |
53 } |
50 } |
54 #else |
51 #else |
55 _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); |
52 _ct_bs = new CardTableModRefBSForCTRS(whole_heap); |
56 #endif |
53 #endif |
57 _ct_bs->initialize(); |
54 _ct_bs->initialize(); |
58 set_bs(_ct_bs); |
55 set_bs(_ct_bs); |
59 _last_cur_val_in_gen = NEW_C_HEAP_ARRAY3(jbyte, GenCollectedHeap::max_gens + 1, |
56 _last_cur_val_in_gen = NEW_C_HEAP_ARRAY3(jbyte, GenCollectedHeap::max_gens + 1, |
60 mtGC, CURRENT_PC, AllocFailStrategy::RETURN_NULL); |
57 mtGC, CURRENT_PC, AllocFailStrategy::RETURN_NULL); |