src/hotspot/share/memory/iterator.hpp
changeset 59154 0c2e1808f800
parent 55603 3868dde58ebb
equal deleted inserted replaced
59153:1152339c298a 59154:0c2e1808f800
   195 class ObjectToOopClosure: public ObjectClosure {
   195 class ObjectToOopClosure: public ObjectClosure {
   196   OopIterateClosure* _cl;
   196   OopIterateClosure* _cl;
   197 public:
   197 public:
   198   void do_object(oop obj);
   198   void do_object(oop obj);
   199   ObjectToOopClosure(OopIterateClosure* cl) : _cl(cl) {}
   199   ObjectToOopClosure(OopIterateClosure* cl) : _cl(cl) {}
   200 };
       
   201 
       
   202 // A version of ObjectClosure that is expected to be robust
       
   203 // in the face of possibly uninitialized objects.
       
   204 class ObjectClosureCareful : public ObjectClosure {
       
   205  public:
       
   206   virtual size_t do_object_careful_m(oop p, MemRegion mr) = 0;
       
   207   virtual size_t do_object_careful(oop p) = 0;
       
   208 };
       
   209 
       
   210 // The following are used in CompactibleFreeListSpace and
       
   211 // ConcurrentMarkSweepGeneration.
       
   212 
       
   213 // Blk closure (abstract class)
       
   214 class BlkClosure : public StackObj {
       
   215  public:
       
   216   virtual size_t do_blk(HeapWord* addr) = 0;
       
   217 };
       
   218 
       
   219 // A version of BlkClosure that is expected to be robust
       
   220 // in the face of possibly uninitialized objects.
       
   221 class BlkClosureCareful : public BlkClosure {
       
   222  public:
       
   223   size_t do_blk(HeapWord* addr) {
       
   224     guarantee(false, "call do_blk_careful instead");
       
   225     return 0;
       
   226   }
       
   227   virtual size_t do_blk_careful(HeapWord* addr) = 0;
       
   228 };
   200 };
   229 
   201 
   230 // SpaceClosure is used for iterating over spaces
   202 // SpaceClosure is used for iterating over spaces
   231 
   203 
   232 class Space;
   204 class Space;