438 bool is_old() const { return _type.is_old(); } 439 440 // A pinned region contains objects which are not moved by garbage collections. 441 // Humongous regions and archive regions are pinned. 442 bool is_pinned() const { return _type.is_pinned(); } 443 444 // An archive region is a pinned region, also tagged as old, which 445 // should not be marked during mark/sweep. This allows the address 446 // space to be shared by JVM instances. 447 bool is_archive() const { return _type.is_archive(); } 448 449 // For a humongous region, region in which it starts. 450 HeapRegion* humongous_start_region() const { 451 return _humongous_start_region; 452 } 453 454 // Makes the current region be a "starts humongous" region, i.e., 455 // the first region in a series of one or more contiguous regions 456 // that will contain a single "humongous" object. 457 // 458 // obj_top : points to the end of the humongous object that's being 459 // allocated. 460 void set_starts_humongous(HeapWord* obj_top); 461 462 // Makes the current region be a "continues humongous' 463 // region. first_hr is the "start humongous" region of the series 464 // which this region will be part of. 465 void set_continues_humongous(HeapRegion* first_hr); 466 467 // Unsets the humongous-related fields on the region. 468 void clear_humongous(); 469 470 // If the region has a remembered set, return a pointer to it. 471 HeapRegionRemSet* rem_set() const { 472 return _rem_set; 473 } 474 475 inline bool in_collection_set() const; 476 477 inline HeapRegion* next_in_collection_set() const; 478 inline void set_next_in_collection_set(HeapRegion* r); 479 480 void set_allocation_context(AllocationContext_t context) { | 438 bool is_old() const { return _type.is_old(); } 439 440 // A pinned region contains objects which are not moved by garbage collections. 441 // Humongous regions and archive regions are pinned. 442 bool is_pinned() const { return _type.is_pinned(); } 443 444 // An archive region is a pinned region, also tagged as old, which 445 // should not be marked during mark/sweep. This allows the address 446 // space to be shared by JVM instances. 447 bool is_archive() const { return _type.is_archive(); } 448 449 // For a humongous region, region in which it starts. 450 HeapRegion* humongous_start_region() const { 451 return _humongous_start_region; 452 } 453 454 // Makes the current region be a "starts humongous" region, i.e., 455 // the first region in a series of one or more contiguous regions 456 // that will contain a single "humongous" object. 457 // 458 // end : points to the end of the humongous region series. 459 void set_starts_humongous(HeapWord* end); 460 461 // Makes the current region be a "continues humongous' 462 // region. first_hr is the "start humongous" region of the series 463 // which this region will be part of. 464 void set_continues_humongous(HeapRegion* first_hr); 465 466 // Unsets the humongous-related fields on the region. 467 void clear_humongous(); 468 469 // If the region has a remembered set, return a pointer to it. 470 HeapRegionRemSet* rem_set() const { 471 return _rem_set; 472 } 473 474 inline bool in_collection_set() const; 475 476 inline HeapRegion* next_in_collection_set() const; 477 inline void set_next_in_collection_set(HeapRegion* r); 478 479 void set_allocation_context(AllocationContext_t context) { |