39 //
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 OopClosure;
59 class FastScanClosure;
60 class GenCollectedHeap;
61 class GCStats;
62
63 // A "ScratchBlock" represents a block of memory in one generation usable by
64 // another. It represents "num_words" free words, starting at and including
65 // the address of "this".
66 struct ScratchBlock {
67 ScratchBlock* next;
68 size_t num_words;
69 HeapWord scratch_space[1]; // Actually, of size "num_words-2" (assuming
70 // first two fields are word-sized.)
71 };
72
73 class Generation: public CHeapObj<mtGC> {
74 friend class VMStructs;
75 private:
76 MemRegion _prev_used_region; // for collectors that want to "remember" a value for
77 // used region at some specific point during collection.
78
79 GCMemoryManager* _gc_manager;
|
39 //
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 OopClosure;
59 class GenCollectedHeap;
60 class GCStats;
61
62 // A "ScratchBlock" represents a block of memory in one generation usable by
63 // another. It represents "num_words" free words, starting at and including
64 // the address of "this".
65 struct ScratchBlock {
66 ScratchBlock* next;
67 size_t num_words;
68 HeapWord scratch_space[1]; // Actually, of size "num_words-2" (assuming
69 // first two fields are word-sized.)
70 };
71
72 class Generation: public CHeapObj<mtGC> {
73 friend class VMStructs;
74 private:
75 MemRegion _prev_used_region; // for collectors that want to "remember" a value for
76 // used region at some specific point during collection.
77
78 GCMemoryManager* _gc_manager;
|