267
268 report_region_type_change(G1HeapRegionTraceType::ContinuesHumongous);
269 _type.set_continues_humongous();
270 _humongous_start_region = first_hr;
271 }
272
273 void HeapRegion::clear_humongous() {
274 assert(is_humongous(), "pre-condition");
275
276 assert(capacity() == HeapRegion::GrainBytes, "pre-condition");
277 _humongous_start_region = NULL;
278 }
279
280 HeapRegion::HeapRegion(uint hrm_index,
281 G1BlockOffsetTable* bot,
282 MemRegion mr) :
283 G1ContiguousSpace(bot),
284 _hrm_index(hrm_index),
285 _allocation_context(AllocationContext::system()),
286 _humongous_start_region(NULL),
287 _next_in_special_set(NULL),
288 _evacuation_failed(false),
289 _prev_marked_bytes(0), _next_marked_bytes(0), _gc_efficiency(0.0),
290 _next(NULL), _prev(NULL),
291 #ifdef ASSERT
292 _containing_set(NULL),
293 #endif // ASSERT
294 _young_index_in_cset(-1), _surv_rate_group(NULL), _age_index(-1),
295 _rem_set(NULL), _recorded_rs_length(0), _predicted_elapsed_time_ms(0),
296 _predicted_bytes_to_copy(0)
297 {
298 _rem_set = new HeapRegionRemSet(bot, this);
299
300 initialize(mr);
301 }
302
303 void HeapRegion::initialize(MemRegion mr, bool clear_space, bool mangle_space) {
304 assert(_rem_set->is_empty(), "Remembered set must be empty");
305
306 G1ContiguousSpace::initialize(mr, clear_space, mangle_space);
307
|
267
268 report_region_type_change(G1HeapRegionTraceType::ContinuesHumongous);
269 _type.set_continues_humongous();
270 _humongous_start_region = first_hr;
271 }
272
273 void HeapRegion::clear_humongous() {
274 assert(is_humongous(), "pre-condition");
275
276 assert(capacity() == HeapRegion::GrainBytes, "pre-condition");
277 _humongous_start_region = NULL;
278 }
279
280 HeapRegion::HeapRegion(uint hrm_index,
281 G1BlockOffsetTable* bot,
282 MemRegion mr) :
283 G1ContiguousSpace(bot),
284 _hrm_index(hrm_index),
285 _allocation_context(AllocationContext::system()),
286 _humongous_start_region(NULL),
287 _evacuation_failed(false),
288 _prev_marked_bytes(0), _next_marked_bytes(0), _gc_efficiency(0.0),
289 _next(NULL), _prev(NULL),
290 #ifdef ASSERT
291 _containing_set(NULL),
292 #endif // ASSERT
293 _young_index_in_cset(-1), _surv_rate_group(NULL), _age_index(-1),
294 _rem_set(NULL), _recorded_rs_length(0), _predicted_elapsed_time_ms(0),
295 _predicted_bytes_to_copy(0)
296 {
297 _rem_set = new HeapRegionRemSet(bot, this);
298
299 initialize(mr);
300 }
301
302 void HeapRegion::initialize(MemRegion mr, bool clear_space, bool mangle_space) {
303 assert(_rem_set->is_empty(), "Remembered set must be empty");
304
305 G1ContiguousSpace::initialize(mr, clear_space, mangle_space);
306
|