hotspot/src/share/vm/memory/cardTableRS.cpp
changeset 30173 13cf7580b000
parent 30165 c4ff729cb74a
equal deleted inserted replaced
30172:4dcc7e33e633 30173:13cf7580b000
    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   }