411 // false otherwise. |
411 // false otherwise. |
412 |
412 |
413 bool G1RemSet::refine_card(jbyte* card_ptr, uint worker_i, |
413 bool G1RemSet::refine_card(jbyte* card_ptr, uint worker_i, |
414 bool check_for_refs_into_cset) { |
414 bool check_for_refs_into_cset) { |
415 assert(_g1->is_in_exact(_ct_bs->addr_for(card_ptr)), |
415 assert(_g1->is_in_exact(_ct_bs->addr_for(card_ptr)), |
416 err_msg("Card at " PTR_FORMAT " index " SIZE_FORMAT " representing heap at " PTR_FORMAT " (%u) must be in committed heap", |
416 "Card at " PTR_FORMAT " index " SIZE_FORMAT " representing heap at " PTR_FORMAT " (%u) must be in committed heap", |
417 p2i(card_ptr), |
417 p2i(card_ptr), |
418 _ct_bs->index_for(_ct_bs->addr_for(card_ptr)), |
418 _ct_bs->index_for(_ct_bs->addr_for(card_ptr)), |
419 p2i(_ct_bs->addr_for(card_ptr)), |
419 p2i(_ct_bs->addr_for(card_ptr)), |
420 _g1->addr_to_region(_ct_bs->addr_for(card_ptr)))); |
420 _g1->addr_to_region(_ct_bs->addr_for(card_ptr))); |
421 |
421 |
422 // If the card is no longer dirty, nothing to do. |
422 // If the card is no longer dirty, nothing to do. |
423 if (*card_ptr != CardTableModRefBS::dirty_card_val()) { |
423 if (*card_ptr != CardTableModRefBS::dirty_card_val()) { |
424 // No need to return that this card contains refs that point |
424 // No need to return that this card contains refs that point |
425 // into the collection set. |
425 // into the collection set. |