30 |
30 |
31 // The specification of a generation. This class also encapsulates |
31 // The specification of a generation. This class also encapsulates |
32 // some generation-specific behavior. This is done here rather than as a |
32 // some generation-specific behavior. This is done here rather than as a |
33 // virtual function of Generation because these methods are needed in |
33 // virtual function of Generation because these methods are needed in |
34 // initialization of the Generations. |
34 // initialization of the Generations. |
35 class GenerationSpec : public CHeapObj { |
35 class GenerationSpec : public CHeapObj<mtGC> { |
36 friend class VMStructs; |
36 friend class VMStructs; |
37 private: |
37 private: |
38 Generation::Name _name; |
38 Generation::Name _name; |
39 size_t _init_size; |
39 size_t _init_size; |
40 size_t _max_size; |
40 size_t _max_size; |
69 typedef GenerationSpec* GenerationSpecPtr; |
69 typedef GenerationSpec* GenerationSpecPtr; |
70 |
70 |
71 // The specification of a permanent generation. This class is very |
71 // The specification of a permanent generation. This class is very |
72 // similar to GenerationSpec in use. Due to PermGen's not being a |
72 // similar to GenerationSpec in use. Due to PermGen's not being a |
73 // true Generation, we cannot combine the spec classes either. |
73 // true Generation, we cannot combine the spec classes either. |
74 class PermanentGenerationSpec : public CHeapObj { |
74 class PermanentGenerationSpec : public CHeapObj<mtGC> { |
75 friend class VMStructs; |
75 friend class VMStructs; |
76 private: |
76 private: |
77 PermGen::Name _name; |
77 PermGen::Name _name; |
78 size_t _init_size; |
78 size_t _init_size; |
79 size_t _max_size; |
79 size_t _max_size; |