136
137 STWGCTimer* _gc_timer;
138
139 enum SomeProtectedConstants {
140 // Generations are GenGrain-aligned and have size that are multiples of
141 // GenGrain.
142 MinFreeScratchWords = 100
143 };
144
145 // Return the size of a survivor space if this generation were of size
146 // gen_size.
147 size_t compute_survivor_size(size_t gen_size, size_t alignment) const {
148 size_t n = gen_size / (SurvivorRatio + 2);
149 return n > alignment ? align_size_down(n, alignment) : alignment;
150 }
151
152 public: // was "protected" but caused compile error on win32
153 class IsAliveClosure: public BoolObjectClosure {
154 Generation* _g;
155 public:
156 IsAliveClosure(Generation* g);
157 bool do_object_b(oop p);
158 };
159
160 class KeepAliveClosure: public OopClosure {
161 protected:
162 ScanWeakRefClosure* _cl;
163 CardTableRS* _rs;
164 template <class T> void do_oop_work(T* p);
165 public:
166 KeepAliveClosure(ScanWeakRefClosure* cl);
167 virtual void do_oop(oop* p);
168 virtual void do_oop(narrowOop* p);
169 };
170
171 class FastKeepAliveClosure: public KeepAliveClosure {
172 protected:
173 HeapWord* _boundary;
174 template <class T> void do_oop_work(T* p);
175 public:
|
136
137 STWGCTimer* _gc_timer;
138
139 enum SomeProtectedConstants {
140 // Generations are GenGrain-aligned and have size that are multiples of
141 // GenGrain.
142 MinFreeScratchWords = 100
143 };
144
145 // Return the size of a survivor space if this generation were of size
146 // gen_size.
147 size_t compute_survivor_size(size_t gen_size, size_t alignment) const {
148 size_t n = gen_size / (SurvivorRatio + 2);
149 return n > alignment ? align_size_down(n, alignment) : alignment;
150 }
151
152 public: // was "protected" but caused compile error on win32
153 class IsAliveClosure: public BoolObjectClosure {
154 Generation* _g;
155 public:
156 IsAliveClosure() {}
157 IsAliveClosure(Generation* g);
158 bool do_object_b(oop p);
159 };
160
161 class KeepAliveClosure: public OopClosure {
162 protected:
163 ScanWeakRefClosure* _cl;
164 CardTableRS* _rs;
165 template <class T> void do_oop_work(T* p);
166 public:
167 KeepAliveClosure(ScanWeakRefClosure* cl);
168 virtual void do_oop(oop* p);
169 virtual void do_oop(narrowOop* p);
170 };
171
172 class FastKeepAliveClosure: public KeepAliveClosure {
173 protected:
174 HeapWord* _boundary;
175 template <class T> void do_oop_work(T* p);
176 public:
|