comparison src/share/vm/memory/space.hpp @ 20265:5255b195f828

8038404: Move object_iterate_mem from Space to CMS since it is only ever used by CMS Reviewed-by: brutisso, tschatzl, stefank
author mgerdin
date Wed, 12 Mar 2014 15:22:45 +0100
parents 30c99d8e0f02
children 6c523f5d5440
comparison
equal deleted inserted replaced
20264:30c99d8e0f02 20265:5255b195f828
186 virtual void object_iterate(ObjectClosure* blk) = 0; 186 virtual void object_iterate(ObjectClosure* blk) = 0;
187 // Similar to object_iterate() except only iterates over 187 // Similar to object_iterate() except only iterates over
188 // objects whose internal references point to objects in the space. 188 // objects whose internal references point to objects in the space.
189 virtual void safe_object_iterate(ObjectClosure* blk) = 0; 189 virtual void safe_object_iterate(ObjectClosure* blk) = 0;
190 190
191 // Iterate over all objects that intersect with mr, calling "cl->do_object"
192 // on each. There is an exception to this: if this closure has already
193 // been invoked on an object, it may skip such objects in some cases. This is
194 // Most likely to happen in an "upwards" (ascending address) iteration of
195 // MemRegions.
196 virtual void object_iterate_mem(MemRegion mr, UpwardsObjectClosure* cl);
197
198 // Iterate over as many initialized objects in the space as possible, 191 // Iterate over as many initialized objects in the space as possible,
199 // calling "cl.do_object_careful" on each. Return NULL if all objects 192 // calling "cl.do_object_careful" on each. Return NULL if all objects
200 // in the space (at the start of the iteration) were iterated over. 193 // in the space (at the start of the iteration) were iterated over.
201 // Return an address indicating the extent of the iteration in the 194 // Return an address indicating the extent of the iteration in the
202 // event that the iteration had to return because of finding an 195 // event that the iteration had to return because of finding an
556 void oop_iterate(ExtendedOopClosure* cl); 549 void oop_iterate(ExtendedOopClosure* cl);
557 void object_iterate(ObjectClosure* blk); 550 void object_iterate(ObjectClosure* blk);
558 // For contiguous spaces this method will iterate safely over objects 551 // For contiguous spaces this method will iterate safely over objects
559 // in the space (i.e., between bottom and top) when at a safepoint. 552 // in the space (i.e., between bottom and top) when at a safepoint.
560 void safe_object_iterate(ObjectClosure* blk); 553 void safe_object_iterate(ObjectClosure* blk);
561 void object_iterate_mem(MemRegion mr, UpwardsObjectClosure* cl);
562 // iterates on objects up to the safe limit 554 // iterates on objects up to the safe limit
563 HeapWord* object_iterate_careful(ObjectClosureCareful* cl); 555 HeapWord* object_iterate_careful(ObjectClosureCareful* cl);
564 HeapWord* concurrent_iteration_safe_limit() { 556 HeapWord* concurrent_iteration_safe_limit() {
565 assert(_concurrent_iteration_safe_limit <= top(), 557 assert(_concurrent_iteration_safe_limit <= top(),
566 "_concurrent_iteration_safe_limit update missed"); 558 "_concurrent_iteration_safe_limit update missed");