< prev index next >
src/hotspot/share/gc/parallel/psParallelCompact.cpp
Print this page
rev 57190 : [mq]: shadow-regions.5
rev 57191 : [mq]: shadow-regions.5_to_6
rev 57192 : imported patch shadow-regions-final-fixes
@@ -3132,11 +3132,10 @@
if (status == ParMarkBitMap::would_overflow) {
// The last object did not fit. Note that interior oop updates were
// deferred, then copy enough of the object to fill the region.
region_ptr->set_deferred_obj_addr(closure.destination());
-
status = closure.copy_until_full(); // copies from closure.source()
decrement_destination_counts(cm, src_space_id, src_region_idx,
closure.source());
closure.complete_region(cm, dest_addr, region_ptr);
@@ -3169,11 +3168,11 @@
void PSParallelCompact::fill_and_update_shadow_region(ParCompactionManager* cm, size_t region_idx)
{
// Get a shadow region first
ParallelCompactData& sd = summary_data();
RegionData* const region_ptr = sd.region(region_idx);
- size_t shadow_region = cm->pop_shadow_region_mt_safe(region_ptr);
+ size_t shadow_region = ParCompactionManager::pop_shadow_region_mt_safe(region_ptr);
// The InvalidShadow return value indicates the corresponding heap region is available,
// so use MoveAndUpdateClosure to fill the normal region. Otherwise, use
// MoveAndUpdateShadowClosure to fill the acquired shadow region.
if (shadow_region == cm->InvalidShadow) {
MoveAndUpdateClosure cl(mark_bitmap(), cm, region_idx);
@@ -3350,11 +3349,11 @@
update_state(words);
}
void MoveAndUpdateClosure::complete_region(ParCompactionManager *cm, HeapWord *dest_addr,
PSParallelCompact::RegionData *region_ptr) {
- assert(region_ptr->shadow_state() == ParallelCompactData::RegionData::FinishedShadow, "Region should be finished");
+ assert(region_ptr->shadow_state() == ParallelCompactData::RegionData::NormalRegion, "Region should be finished");
region_ptr->set_completed();
}
ParMarkBitMapClosure::IterationStatus
MoveAndUpdateClosure::do_addr(HeapWord* addr, size_t words) {
@@ -3388,11 +3387,11 @@
return is_full() ? ParMarkBitMap::full : ParMarkBitMap::incomplete;
}
void MoveAndUpdateShadowClosure::complete_region(ParCompactionManager *cm, HeapWord *dest_addr,
PSParallelCompact::RegionData *region_ptr) {
- assert(region_ptr->shadow_state() == ParallelCompactData::RegionData::Shadow, "Region should be shadow");
+ assert(region_ptr->shadow_state() == ParallelCompactData::RegionData::ShadowRegion, "Region should be shadow");
// Record the shadow region index
region_ptr->set_shadow_region(_shadow);
// Mark the shadow region as filled to indicate the data is ready to be
// copied back
region_ptr->mark_filled();
< prev index next >