hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
changeset 1668 8ec481b8f514
parent 1610 5dddd195cc86
child 1675 cc1a5096e88f
equal deleted inserted replaced
1667:fc79935c3055 1668:8ec481b8f514
  2952       assert(_cm->isPrevMarked(obj), "Should be marked!");
  2952       assert(_cm->isPrevMarked(obj), "Should be marked!");
  2953     } else {
  2953     } else {
  2954       // The object has been either evacuated or is dead. Fill it with a
  2954       // The object has been either evacuated or is dead. Fill it with a
  2955       // dummy object.
  2955       // dummy object.
  2956       MemRegion mr((HeapWord*)obj, obj->size());
  2956       MemRegion mr((HeapWord*)obj, obj->size());
  2957       SharedHeap::fill_region_with_object(mr);
  2957       CollectedHeap::fill_with_object(mr);
  2958       _cm->clearRangeBothMaps(mr);
  2958       _cm->clearRangeBothMaps(mr);
  2959     }
  2959     }
  2960   }
  2960   }
  2961 };
  2961 };
  2962 
  2962 
  3223     // If there's too little space, no one can allocate, so we're done.
  3223     // If there's too little space, no one can allocate, so we're done.
  3224     if (free_words < (size_t)oopDesc::header_size()) return;
  3224     if (free_words < (size_t)oopDesc::header_size()) return;
  3225     // Otherwise, try to claim it.
  3225     // Otherwise, try to claim it.
  3226     block = r->par_allocate(free_words);
  3226     block = r->par_allocate(free_words);
  3227   } while (block == NULL);
  3227   } while (block == NULL);
  3228   SharedHeap::fill_region_with_object(MemRegion(block, free_words));
  3228   fill_with_object(block, free_words);
  3229 }
  3229 }
  3230 
  3230 
  3231 #define use_local_bitmaps         1
  3231 #define use_local_bitmaps         1
  3232 #define verify_local_bitmaps      0
  3232 #define verify_local_bitmaps      0
  3233 
  3233 
  3617   void undo_allocation(GCAllocPurpose purpose, HeapWord* obj, size_t word_sz) {
  3617   void undo_allocation(GCAllocPurpose purpose, HeapWord* obj, size_t word_sz) {
  3618     if (alloc_buffer(purpose)->contains(obj)) {
  3618     if (alloc_buffer(purpose)->contains(obj)) {
  3619       guarantee(alloc_buffer(purpose)->contains(obj + word_sz - 1),
  3619       guarantee(alloc_buffer(purpose)->contains(obj + word_sz - 1),
  3620                 "should contain whole object");
  3620                 "should contain whole object");
  3621       alloc_buffer(purpose)->undo_allocation(obj, word_sz);
  3621       alloc_buffer(purpose)->undo_allocation(obj, word_sz);
  3622     }
  3622     } else {
  3623     else {
  3623       CollectedHeap::fill_with_object(obj, word_sz);
  3624       SharedHeap::fill_region_with_object(MemRegion(obj, word_sz));
       
  3625       add_to_undo_waste(word_sz);
  3624       add_to_undo_waste(word_sz);
  3626     }
  3625     }
  3627   }
  3626   }
  3628 
  3627 
  3629   void set_evac_failure_closure(OopsInHeapRegionClosure* evac_failure_cl) {
  3628   void set_evac_failure_closure(OopsInHeapRegionClosure* evac_failure_cl) {