390 return false; |
390 return false; |
391 } |
391 } |
392 |
392 |
393 // Assumes that only the base or the end changes. This allows indentification |
393 // Assumes that only the base or the end changes. This allows indentification |
394 // of the region that is being resized. The |
394 // of the region that is being resized. The |
395 // CardTableModRefBS::resize_covered_region() is used for the normal case |
395 // CardTable::resize_covered_region() is used for the normal case |
396 // where the covered regions are growing or shrinking at the high end. |
396 // where the covered regions are growing or shrinking at the high end. |
397 // The method resize_covered_region_by_end() is analogous to |
397 // The method resize_covered_region_by_end() is analogous to |
398 // CardTableModRefBS::resize_covered_region() but |
398 // CardTable::resize_covered_region() but |
399 // for regions that grow or shrink at the low end. |
399 // for regions that grow or shrink at the low end. |
400 void PSCardTable::resize_covered_region(MemRegion new_region) { |
400 void PSCardTable::resize_covered_region(MemRegion new_region) { |
401 for (int i = 0; i < _cur_covered_regions; i++) { |
401 for (int i = 0; i < _cur_covered_regions; i++) { |
402 if (_covered[i].start() == new_region.start()) { |
402 if (_covered[i].start() == new_region.start()) { |
403 // Found a covered region with the same start as the |
403 // Found a covered region with the same start as the |
461 |
461 |
462 // Update the covered region |
462 // Update the covered region |
463 resize_update_covered_table(changed_region, new_region); |
463 resize_update_covered_table(changed_region, new_region); |
464 |
464 |
465 int ind = changed_region; |
465 int ind = changed_region; |
466 log_trace(gc, barrier)("CardTableModRefBS::resize_covered_region: "); |
466 log_trace(gc, barrier)("CardTable::resize_covered_region: "); |
467 log_trace(gc, barrier)(" _covered[%d].start(): " INTPTR_FORMAT " _covered[%d].last(): " INTPTR_FORMAT, |
467 log_trace(gc, barrier)(" _covered[%d].start(): " INTPTR_FORMAT " _covered[%d].last(): " INTPTR_FORMAT, |
468 ind, p2i(_covered[ind].start()), ind, p2i(_covered[ind].last())); |
468 ind, p2i(_covered[ind].start()), ind, p2i(_covered[ind].last())); |
469 log_trace(gc, barrier)(" _committed[%d].start(): " INTPTR_FORMAT " _committed[%d].last(): " INTPTR_FORMAT, |
469 log_trace(gc, barrier)(" _committed[%d].start(): " INTPTR_FORMAT " _committed[%d].last(): " INTPTR_FORMAT, |
470 ind, p2i(_committed[ind].start()), ind, p2i(_committed[ind].last())); |
470 ind, p2i(_committed[ind].start()), ind, p2i(_committed[ind].last())); |
471 log_trace(gc, barrier)(" byte_for(start): " INTPTR_FORMAT " byte_for(last): " INTPTR_FORMAT, |
471 log_trace(gc, barrier)(" byte_for(start): " INTPTR_FORMAT " byte_for(last): " INTPTR_FORMAT, |