296 bool is_unlocked_oop() const; |
296 bool is_unlocked_oop() const; |
297 #endif |
297 #endif |
298 |
298 |
299 // garbage collection |
299 // garbage collection |
300 bool is_gc_marked() const; |
300 bool is_gc_marked() const; |
301 // Apply "MarkSweep::mark_and_push" to (the address of) every non-NULL |
|
302 // reference field in "this". |
|
303 void follow_contents(void); |
|
304 |
|
305 #if INCLUDE_ALL_GCS |
|
306 // Parallel Scavenge |
|
307 void push_contents(PSPromotionManager* pm); |
|
308 |
|
309 // Parallel Old |
|
310 void update_contents(ParCompactionManager* cm); |
|
311 |
|
312 void follow_contents(ParCompactionManager* cm); |
|
313 #endif // INCLUDE_ALL_GCS |
|
314 |
301 |
315 bool is_scavengable() const; |
302 bool is_scavengable() const; |
316 |
303 |
317 // Forward pointer operations for scavenge |
304 // Forward pointer operations for scavenge |
318 bool is_forwarded() const; |
305 bool is_forwarded() const; |
332 |
319 |
333 // Age of object during scavenge |
320 // Age of object during scavenge |
334 uint age() const; |
321 uint age() const; |
335 void incr_age(); |
322 void incr_age(); |
336 |
323 |
337 // Adjust all pointers in this object to point at it's forwarded location and |
|
338 // return the size of this oop. This is used by the MarkSweep collector. |
|
339 int adjust_pointers(); |
|
340 |
324 |
341 // mark-sweep support |
325 // mark-sweep support |
342 void follow_body(int begin, int end); |
326 void follow_body(int begin, int end); |
343 |
327 |
344 // Fast access to barrier set |
328 // Fast access to barrier set |
345 static BarrierSet* bs() { return _bs; } |
329 static BarrierSet* bs() { return _bs; } |
346 static void set_bs(BarrierSet* bs) { _bs = bs; } |
330 static void set_bs(BarrierSet* bs) { _bs = bs; } |
|
331 |
|
332 // Garbage Collection support |
|
333 |
|
334 // Mark Sweep |
|
335 void ms_follow_contents(); |
|
336 // Adjust all pointers in this object to point at it's forwarded location and |
|
337 // return the size of this oop. This is used by the MarkSweep collector. |
|
338 int ms_adjust_pointers(); |
|
339 #if INCLUDE_ALL_GCS |
|
340 // Parallel Compact |
|
341 void pc_follow_contents(ParCompactionManager* pc); |
|
342 void pc_update_contents(); |
|
343 // Parallel Scavenge |
|
344 void ps_push_contents(PSPromotionManager* pm); |
|
345 #endif |
|
346 |
347 |
347 |
348 // iterators, returns size of object |
348 // iterators, returns size of object |
349 #define OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ |
349 #define OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ |
350 int oop_iterate(OopClosureType* blk); \ |
350 int oop_iterate(OopClosureType* blk); \ |
351 int oop_iterate(OopClosureType* blk, MemRegion mr); // Only in mr. |
351 int oop_iterate(OopClosureType* blk, MemRegion mr); // Only in mr. |