178 // by the compiler.
179 inline oop* set_partial_array_mask(oop obj) const {
180 assert(((uintptr_t)(void *)obj & G1_PARTIAL_ARRAY_MASK) == 0, "Information loss!");
181 return (oop*) ((uintptr_t)(void *)obj | G1_PARTIAL_ARRAY_MASK);
182 }
183
184 inline oop clear_partial_array_mask(oop* ref) const {
185 return cast_to_oop((intptr_t)ref & ~G1_PARTIAL_ARRAY_MASK);
186 }
187
188 inline void do_oop_partial_array(oop* p);
189
190 // This method is applied to the fields of the objects that have just been copied.
191 template <class T> inline void do_oop_evac(T* p, HeapRegion* from);
192
193 template <class T> inline void deal_with_reference(T* ref_to_scan);
194
195 inline void dispatch_reference(StarTask ref);
196 public:
197
198 oop copy_to_survivor_space(oop const obj);
199
200 void trim_queue();
201
202 inline void steal_and_trim_queue(RefToScanQueueSet *task_queues);
203 };
204
205 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1PARSCANTHREADSTATE_HPP
|
178 // by the compiler.
179 inline oop* set_partial_array_mask(oop obj) const {
180 assert(((uintptr_t)(void *)obj & G1_PARTIAL_ARRAY_MASK) == 0, "Information loss!");
181 return (oop*) ((uintptr_t)(void *)obj | G1_PARTIAL_ARRAY_MASK);
182 }
183
184 inline oop clear_partial_array_mask(oop* ref) const {
185 return cast_to_oop((intptr_t)ref & ~G1_PARTIAL_ARRAY_MASK);
186 }
187
188 inline void do_oop_partial_array(oop* p);
189
190 // This method is applied to the fields of the objects that have just been copied.
191 template <class T> inline void do_oop_evac(T* p, HeapRegion* from);
192
193 template <class T> inline void deal_with_reference(T* ref_to_scan);
194
195 inline void dispatch_reference(StarTask ref);
196 public:
197
198 oop copy_to_survivor_space(oop const obj, markOop const old_mark);
199
200 void trim_queue();
201
202 inline void steal_and_trim_queue(RefToScanQueueSet *task_queues);
203 };
204
205 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1PARSCANTHREADSTATE_HPP
|