40 // The Generation class hierarchy:
41 //
42 // Generation - abstract base class
43 // - DefNewGeneration - allocation area (copy collected)
44 // - CardGeneration - abstract class adding offset array behavior
45 // - TenuredGeneration - tenured (old object) space (markSweepCompact)
46 //
47 // The system configuration currently allowed is:
48 //
49 // DefNewGeneration + TenuredGeneration
50 //
51
52 class DefNewGeneration;
53 class GCMemoryManager;
54 class GenerationSpec;
55 class CompactibleSpace;
56 class ContiguousSpace;
57 class CompactPoint;
58 class OopsInGenClosure;
59 class OopClosure;
60 class ScanClosure;
61 class FastScanClosure;
62 class GenCollectedHeap;
63 class GCStats;
64
65 // A "ScratchBlock" represents a block of memory in one generation usable by
66 // another. It represents "num_words" free words, starting at and including
67 // the address of "this".
68 struct ScratchBlock {
69 ScratchBlock* next;
70 size_t num_words;
71 HeapWord scratch_space[1]; // Actually, of size "num_words-2" (assuming
72 // first two fields are word-sized.)
73 };
74
75 class Generation: public CHeapObj<mtGC> {
76 friend class VMStructs;
77 private:
78 MemRegion _prev_used_region; // for collectors that want to "remember" a value for
79 // used region at some specific point during collection.
80
|
40 // The Generation class hierarchy:
41 //
42 // Generation - abstract base class
43 // - DefNewGeneration - allocation area (copy collected)
44 // - CardGeneration - abstract class adding offset array behavior
45 // - TenuredGeneration - tenured (old object) space (markSweepCompact)
46 //
47 // The system configuration currently allowed is:
48 //
49 // DefNewGeneration + TenuredGeneration
50 //
51
52 class DefNewGeneration;
53 class GCMemoryManager;
54 class GenerationSpec;
55 class CompactibleSpace;
56 class ContiguousSpace;
57 class CompactPoint;
58 class OopsInGenClosure;
59 class OopClosure;
60 class FastScanClosure;
61 class GenCollectedHeap;
62 class GCStats;
63
64 // A "ScratchBlock" represents a block of memory in one generation usable by
65 // another. It represents "num_words" free words, starting at and including
66 // the address of "this".
67 struct ScratchBlock {
68 ScratchBlock* next;
69 size_t num_words;
70 HeapWord scratch_space[1]; // Actually, of size "num_words-2" (assuming
71 // first two fields are word-sized.)
72 };
73
74 class Generation: public CHeapObj<mtGC> {
75 friend class VMStructs;
76 private:
77 MemRegion _prev_used_region; // for collectors that want to "remember" a value for
78 // used region at some specific point during collection.
79
|