< prev index next >
src/share/vm/gc/g1/g1Allocator.hpp
Print this page
@@ -319,18 +319,23 @@
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,
+// 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; // An 'open' archive region may contain references pointing to
- // non-archive heap region. GC can adjust pointers in 'open'
- // archive region.
+ bool _open; // Indicate if the region is 'open' archive.
G1CollectedHeap* _g1h;
// The current allocation region
HeapRegion* _allocation_region;
< prev index next >