src/hotspot/share/gc/shared/genOopClosures.hpp
changeset 49982 9042ffe5b7fe
parent 49827 a4672513d6e3
child 50621 4216de02077e
equal deleted inserted replaced
49981:bd0a95bec96b 49982:9042ffe5b7fe
    92   }
    92   }
    93   bool is_scanning_a_cld() { return _scanned_cld != NULL; }
    93   bool is_scanning_a_cld() { return _scanned_cld != NULL; }
    94   void do_cld_barrier();
    94   void do_cld_barrier();
    95 };
    95 };
    96 
    96 
       
    97 #if INCLUDE_SERIALGC
    97 
    98 
    98 // Closure for scanning DefNewGeneration.
    99 // Closure for scanning DefNewGeneration.
    99 //
   100 //
   100 // This closure will perform barrier store calls for ALL
   101 // This closure will perform barrier store calls for ALL
   101 // pointers in scanned oops.
   102 // pointers in scanned oops.
   130   virtual void do_oop(narrowOop* p);
   131   virtual void do_oop(narrowOop* p);
   131   inline void do_oop_nv(oop* p);
   132   inline void do_oop_nv(oop* p);
   132   inline void do_oop_nv(narrowOop* p);
   133   inline void do_oop_nv(narrowOop* p);
   133 };
   134 };
   134 
   135 
       
   136 #endif // INCLUDE_SERIALGC
       
   137 
   135 class CLDScanClosure: public CLDClosure {
   138 class CLDScanClosure: public CLDClosure {
   136   OopsInClassLoaderDataOrGenClosure*   _scavenge_closure;
   139   OopsInClassLoaderDataOrGenClosure*   _scavenge_closure;
   137   // true if the the modified oops state should be saved.
   140   // true if the the modified oops state should be saved.
   138   bool                                 _accumulate_modified_oops;
   141   bool                                 _accumulate_modified_oops;
   139  public:
   142  public:
   159   inline void do_oop_nv(narrowOop* p);
   162   inline void do_oop_nv(narrowOop* p);
   160   virtual bool do_metadata()          { return do_metadata_nv(); }
   163   virtual bool do_metadata()          { return do_metadata_nv(); }
   161   inline bool do_metadata_nv()        { assert(!_cl->do_metadata(), "assumption broken, must change to 'return _cl->do_metadata()'"); return false; }
   164   inline bool do_metadata_nv()        { assert(!_cl->do_metadata(), "assumption broken, must change to 'return _cl->do_metadata()'"); return false; }
   162 };
   165 };
   163 
   166 
       
   167 #if INCLUDE_SERIALGC
       
   168 
   164 // Closure for scanning DefNewGeneration's weak references.
   169 // Closure for scanning DefNewGeneration's weak references.
   165 // NOTE: very much like ScanClosure but not derived from
   170 // NOTE: very much like ScanClosure but not derived from
   166 //  OopsInGenClosure -- weak references are processed all
   171 //  OopsInGenClosure -- weak references are processed all
   167 //  at once, with no notion of which generation they were in.
   172 //  at once, with no notion of which generation they were in.
   168 class ScanWeakRefClosure: public OopClosure {
   173 class ScanWeakRefClosure: public OopClosure {
   176   virtual void do_oop(narrowOop* p);
   181   virtual void do_oop(narrowOop* p);
   177   inline void do_oop_nv(oop* p);
   182   inline void do_oop_nv(oop* p);
   178   inline void do_oop_nv(narrowOop* p);
   183   inline void do_oop_nv(narrowOop* p);
   179 };
   184 };
   180 
   185 
       
   186 #endif // INCLUDE_SERIALGC
       
   187 
   181 #endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP
   188 #endif // SHARE_VM_GC_SHARED_GENOOPCLOSURES_HPP