hotspot/src/share/vm/memory/iterator.hpp
changeset 46445 825b002e05ae
parent 46415 7d5a286cdf89
equal deleted inserted replaced
46444:677be3444372 46445:825b002e05ae
    66   ReferenceProcessor* ref_processor() const { return _ref_processor; }
    66   ReferenceProcessor* ref_processor() const { return _ref_processor; }
    67 
    67 
    68   // Iteration of InstanceRefKlasses differ depending on the closure,
    68   // Iteration of InstanceRefKlasses differ depending on the closure,
    69   // the below enum describes the different alternatives.
    69   // the below enum describes the different alternatives.
    70   enum ReferenceIterationMode {
    70   enum ReferenceIterationMode {
    71     DO_DISCOVERY, // Apply closure and discover references
    71     DO_DISCOVERY,                // Apply closure and discover references
    72     DO_FIELDS     // Apply closure to all fields
    72     DO_DISCOVERED_AND_DISCOVERY, // Apply closure to discovered field and do discovery
       
    73     DO_FIELDS                    // Apply closure to all fields
    73   };
    74   };
    74 
    75 
    75   // The default iteration mode is to do discovery.
    76   // The default iteration mode is to do discovery.
    76   virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERY; }
    77   virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERY; }
    77 
    78 
   100   virtual void do_cld(ClassLoaderData* cld) { do_cld_nv(cld); }
   101   virtual void do_cld(ClassLoaderData* cld) { do_cld_nv(cld); }
   101 
   102 
   102   // True iff this closure may be safely applied more than once to an oop
   103   // True iff this closure may be safely applied more than once to an oop
   103   // location without an intervening "major reset" (like the end of a GC).
   104   // location without an intervening "major reset" (like the end of a GC).
   104   virtual bool idempotent() { return false; }
   105   virtual bool idempotent() { return false; }
   105   virtual bool apply_to_weak_ref_discovered_field() { return false; }
       
   106 
   106 
   107 #ifdef ASSERT
   107 #ifdef ASSERT
   108   // Default verification of each visited oop field.
   108   // Default verification of each visited oop field.
   109   template <typename T> void verify(T* p);
   109   template <typename T> void verify(T* p);
   110 
   110