< prev index next >
src/share/vm/gc/g1/g1Allocator.hpp
Print this page
*** 319,336 ****
protected:
bool default_value() const { return false; }
};
// G1ArchiveAllocator is used to allocate memory in archive
! // regions. Such regions are not modifiable by GC, being neither
! // scavenged nor compacted, or even marked in the object header.
! // They can contain no pointers to non-archive heap regions,
class G1ArchiveAllocator : public CHeapObj<mtGC> {
protected:
! bool _open; // An 'open' archive region may contain references pointing to
! // non-archive heap region. GC can adjust pointers in 'open'
! // archive region.
G1CollectedHeap* _g1h;
// The current allocation region
HeapRegion* _allocation_region;
--- 319,341 ----
protected:
bool default_value() const { return false; }
};
// G1ArchiveAllocator is used to allocate memory in archive
! // regions. Such regions are not scavenged nor compacted by GC.
! // There are two types of archive regions, which are
! // differ in the kind of references allowed for the contained objects:
! //
! // - 'Closed' archive region contain no references outside of archive
! // regions. The region is immutable by GC. GC does not mark object
! // header in 'closed' archive region.
! // - An 'open' archive region may contain references pointing to
! // non-archive heap region. GC can adjust pointers and mark object
! // header in 'open' archive region.
class G1ArchiveAllocator : public CHeapObj<mtGC> {
protected:
! bool _open; // Indicate if the region is 'open' archive.
G1CollectedHeap* _g1h;
// The current allocation region
HeapRegion* _allocation_region;
< prev index next >