src/hotspot/share/gc/shared/space.hpp
changeset 59153 1152339c298a
parent 57811 947252a54b98
child 59154 0c2e1808f800
equal deleted inserted replaced
59152:59272e9e0635 59153:1152339c298a
   173 
   173 
   174   // Iterate over all objects in the space, calling "cl.do_object" on
   174   // Iterate over all objects in the space, calling "cl.do_object" on
   175   // each.  Objects allocated by applications of the closure are not
   175   // each.  Objects allocated by applications of the closure are not
   176   // included in the iteration.
   176   // included in the iteration.
   177   virtual void object_iterate(ObjectClosure* blk) = 0;
   177   virtual void object_iterate(ObjectClosure* blk) = 0;
   178   // Similar to object_iterate() except only iterates over
       
   179   // objects whose internal references point to objects in the space.
       
   180   virtual void safe_object_iterate(ObjectClosure* blk) = 0;
       
   181 
   178 
   182   // Create and return a new dirty card to oop closure. Can be
   179   // Create and return a new dirty card to oop closure. Can be
   183   // overridden to return the appropriate type of closure
   180   // overridden to return the appropriate type of closure
   184   // depending on the type of space in which the closure will
   181   // depending on the type of space in which the closure will
   185   // operate. ResourceArea allocated.
   182   // operate. ResourceArea allocated.
   582   HeapWord* allocate_aligned(size_t word_size);
   579   HeapWord* allocate_aligned(size_t word_size);
   583 
   580 
   584   // Iteration
   581   // Iteration
   585   void oop_iterate(OopIterateClosure* cl);
   582   void oop_iterate(OopIterateClosure* cl);
   586   void object_iterate(ObjectClosure* blk);
   583   void object_iterate(ObjectClosure* blk);
   587   // For contiguous spaces this method will iterate safely over objects
       
   588   // in the space (i.e., between bottom and top) when at a safepoint.
       
   589   void safe_object_iterate(ObjectClosure* blk);
       
   590 
   584 
   591   // Iterate over as many initialized objects in the space as possible,
   585   // Iterate over as many initialized objects in the space as possible,
   592   // calling "cl.do_object_careful" on each. Return NULL if all objects
   586   // calling "cl.do_object_careful" on each. Return NULL if all objects
   593   // in the space (at the start of the iteration) were iterated over.
   587   // in the space (at the start of the iteration) were iterated over.
   594   // Return an address indicating the extent of the iteration in the
   588   // Return an address indicating the extent of the iteration in the