equal
deleted
inserted
replaced
36 |
36 |
37 CardTableRS::CardTableRS(MemRegion whole_heap) : |
37 CardTableRS::CardTableRS(MemRegion whole_heap) : |
38 GenRemSet(), |
38 GenRemSet(), |
39 _cur_youngergen_card_val(youngergenP1_card) |
39 _cur_youngergen_card_val(youngergenP1_card) |
40 { |
40 { |
41 guarantee(Universe::heap()->kind() == CollectedHeap::GenCollectedHeap, "sanity"); |
|
42 _ct_bs = new CardTableModRefBSForCTRS(whole_heap); |
41 _ct_bs = new CardTableModRefBSForCTRS(whole_heap); |
43 _ct_bs->initialize(); |
42 _ct_bs->initialize(); |
44 set_bs(_ct_bs); |
43 set_bs(_ct_bs); |
45 // max_gens is really GenCollectedHeap::heap()->gen_policy()->number_of_generations() |
44 // max_gens is really GenCollectedHeap::heap()->gen_policy()->number_of_generations() |
46 // (which is always 2, young & old), but GenCollectedHeap has not been initialized yet. |
45 // (which is always 2, young & old), but GenCollectedHeap has not been initialized yet. |
596 |
595 |
597 void CardTableRS::verify() { |
596 void CardTableRS::verify() { |
598 // At present, we only know how to verify the card table RS for |
597 // At present, we only know how to verify the card table RS for |
599 // generational heaps. |
598 // generational heaps. |
600 VerifyCTGenClosure blk(this); |
599 VerifyCTGenClosure blk(this); |
601 CollectedHeap* ch = Universe::heap(); |
600 GenCollectedHeap::heap()->generation_iterate(&blk, false); |
602 |
601 _ct_bs->verify(); |
603 if (ch->kind() == CollectedHeap::GenCollectedHeap) { |
602 } |
604 GenCollectedHeap::heap()->generation_iterate(&blk, false); |
|
605 _ct_bs->verify(); |
|
606 } |
|
607 } |
|