< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp

Print this page




 421 
 422   // Iterate over all objects that intersect with mr, calling "cl->do_object"
 423   // on each.  There is an exception to this: if this closure has already
 424   // been invoked on an object, it may skip such objects in some cases.  This is
 425   // Most likely to happen in an "upwards" (ascending address) iteration of
 426   // MemRegions.
 427   void object_iterate_mem(MemRegion mr, UpwardsObjectClosure* cl);
 428 
 429   // Requires that "mr" be entirely within the space.
 430   // Apply "cl->do_object" to all objects that intersect with "mr".
 431   // If the iteration encounters an unparseable portion of the region,
 432   // terminate the iteration and return the address of the start of the
 433   // subregion that isn't done.  Return of "NULL" indicates that the
 434   // iteration completed.
 435   HeapWord* object_iterate_careful_m(MemRegion mr,
 436                                      ObjectClosureCareful* cl);
 437 
 438   // Override: provides a DCTO_CL specific to this kind of space.
 439   DirtyCardToOopClosure* new_dcto_cl(ExtendedOopClosure* cl,
 440                                      CardTableModRefBS::PrecisionStyle precision,
 441                                      HeapWord* boundary);

 442 
 443   void blk_iterate(BlkClosure* cl);
 444   void blk_iterate_careful(BlkClosureCareful* cl);
 445   HeapWord* block_start_const(const void* p) const;
 446   HeapWord* block_start_careful(const void* p) const;
 447   size_t block_size(const HeapWord* p) const;
 448   size_t block_size_no_stall(HeapWord* p, const CMSCollector* c) const;
 449   bool block_is_obj(const HeapWord* p) const;
 450   bool obj_is_alive(const HeapWord* p) const;
 451   size_t block_size_nopar(const HeapWord* p) const;
 452   bool block_is_obj_nopar(const HeapWord* p) const;
 453 
 454   // Iteration support for promotion
 455   void save_marks();
 456   bool no_allocs_since_save_marks();
 457 
 458   // Iteration support for sweeping
 459   void save_sweep_limit() {
 460     _sweep_limit = BlockOffsetArrayUseUnallocatedBlock ?
 461                    unallocated_block() : end();




 421 
 422   // Iterate over all objects that intersect with mr, calling "cl->do_object"
 423   // on each.  There is an exception to this: if this closure has already
 424   // been invoked on an object, it may skip such objects in some cases.  This is
 425   // Most likely to happen in an "upwards" (ascending address) iteration of
 426   // MemRegions.
 427   void object_iterate_mem(MemRegion mr, UpwardsObjectClosure* cl);
 428 
 429   // Requires that "mr" be entirely within the space.
 430   // Apply "cl->do_object" to all objects that intersect with "mr".
 431   // If the iteration encounters an unparseable portion of the region,
 432   // terminate the iteration and return the address of the start of the
 433   // subregion that isn't done.  Return of "NULL" indicates that the
 434   // iteration completed.
 435   HeapWord* object_iterate_careful_m(MemRegion mr,
 436                                      ObjectClosureCareful* cl);
 437 
 438   // Override: provides a DCTO_CL specific to this kind of space.
 439   DirtyCardToOopClosure* new_dcto_cl(ExtendedOopClosure* cl,
 440                                      CardTableModRefBS::PrecisionStyle precision,
 441                                      HeapWord* boundary,
 442                                      bool parallel);
 443 
 444   void blk_iterate(BlkClosure* cl);
 445   void blk_iterate_careful(BlkClosureCareful* cl);
 446   HeapWord* block_start_const(const void* p) const;
 447   HeapWord* block_start_careful(const void* p) const;
 448   size_t block_size(const HeapWord* p) const;
 449   size_t block_size_no_stall(HeapWord* p, const CMSCollector* c) const;
 450   bool block_is_obj(const HeapWord* p) const;
 451   bool obj_is_alive(const HeapWord* p) const;
 452   size_t block_size_nopar(const HeapWord* p) const;
 453   bool block_is_obj_nopar(const HeapWord* p) const;
 454 
 455   // Iteration support for promotion
 456   void save_marks();
 457   bool no_allocs_since_save_marks();
 458 
 459   // Iteration support for sweeping
 460   void save_sweep_limit() {
 461     _sweep_limit = BlockOffsetArrayUseUnallocatedBlock ?
 462                    unallocated_block() : end();


< prev index next >