equal
deleted
inserted
replaced
92 } |
92 } |
93 bool is_scanning_a_cld() { return _scanned_cld != NULL; } |
93 bool is_scanning_a_cld() { return _scanned_cld != NULL; } |
94 void do_cld_barrier(); |
94 void do_cld_barrier(); |
95 }; |
95 }; |
96 |
96 |
|
97 #if INCLUDE_SERIALGC |
97 |
98 |
98 // Closure for scanning DefNewGeneration. |
99 // Closure for scanning DefNewGeneration. |
99 // |
100 // |
100 // This closure will perform barrier store calls for ALL |
101 // This closure will perform barrier store calls for ALL |
101 // pointers in scanned oops. |
102 // pointers in scanned oops. |
130 virtual void do_oop(narrowOop* p); |
131 virtual void do_oop(narrowOop* p); |
131 inline void do_oop_nv(oop* p); |
132 inline void do_oop_nv(oop* p); |
132 inline void do_oop_nv(narrowOop* p); |
133 inline void do_oop_nv(narrowOop* p); |
133 }; |
134 }; |
134 |
135 |
|
136 #endif // INCLUDE_SERIALGC |
|
137 |
135 class CLDScanClosure: public CLDClosure { |
138 class CLDScanClosure: public CLDClosure { |
136 OopsInClassLoaderDataOrGenClosure* _scavenge_closure; |
139 OopsInClassLoaderDataOrGenClosure* _scavenge_closure; |
137 // true if the the modified oops state should be saved. |
140 // true if the the modified oops state should be saved. |
138 bool _accumulate_modified_oops; |
141 bool _accumulate_modified_oops; |
139 public: |
142 public: |
159 inline void do_oop_nv(narrowOop* p); |
162 inline void do_oop_nv(narrowOop* p); |
160 virtual bool do_metadata() { return do_metadata_nv(); } |
163 virtual bool do_metadata() { return do_metadata_nv(); } |
161 inline bool do_metadata_nv() { assert(!_cl->do_metadata(), "assumption broken, must change to 'return _cl->do_metadata()'"); return false; } |
164 inline bool do_metadata_nv() { assert(!_cl->do_metadata(), "assumption broken, must change to 'return _cl->do_metadata()'"); return false; } |
162 }; |
165 }; |
163 |
166 |
|
167 #if INCLUDE_SERIALGC |
|
168 |
164 // Closure for scanning DefNewGeneration's weak references. |
169 // Closure for scanning DefNewGeneration's weak references. |
165 // NOTE: very much like ScanClosure but not derived from |
170 // NOTE: very much like ScanClosure but not derived from |
166 // OopsInGenClosure -- weak references are processed all |
171 // OopsInGenClosure -- weak references are processed all |
167 // at once, with no notion of which generation they were in. |
172 // at once, with no notion of which generation they were in. |
168 class ScanWeakRefClosure: public OopClosure { |
173 class ScanWeakRefClosure: public OopClosure { |
176 virtual void do_oop(narrowOop* p); |
181 virtual void do_oop(narrowOop* p); |
177 inline void do_oop_nv(oop* p); |
182 inline void do_oop_nv(oop* p); |
178 inline void do_oop_nv(narrowOop* p); |
183 inline void do_oop_nv(narrowOop* p); |
179 }; |
184 }; |
180 |
185 |
|
186 #endif // INCLUDE_SERIALGC |
|
187 |
181 #endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP |
188 #endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP |