hotspot/src/share/vm/gc/g1/g1CollectedHeap.hpp
changeset 38081 a3bcb7197d45
parent 37989 e0a0f4de45c4
child 38154 4c30333c304e
equal deleted inserted replaced
38080:bb02a3ad3b0a 38081:a3bcb7197d45
    43 #include "gc/g1/heapRegionSet.hpp"
    43 #include "gc/g1/heapRegionSet.hpp"
    44 #include "gc/g1/youngList.hpp"
    44 #include "gc/g1/youngList.hpp"
    45 #include "gc/shared/barrierSet.hpp"
    45 #include "gc/shared/barrierSet.hpp"
    46 #include "gc/shared/collectedHeap.hpp"
    46 #include "gc/shared/collectedHeap.hpp"
    47 #include "gc/shared/plab.hpp"
    47 #include "gc/shared/plab.hpp"
       
    48 #include "gc/shared/preservedMarks.hpp"
    48 #include "memory/memRegion.hpp"
    49 #include "memory/memRegion.hpp"
    49 #include "utilities/stack.hpp"
    50 #include "utilities/stack.hpp"
    50 
    51 
    51 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
    52 // A "G1CollectedHeap" is an implementation of a java heap for HotSpot.
    52 // It uses the "Garbage First" heap organization and algorithm, which
    53 // It uses the "Garbage First" heap organization and algorithm, which
   795 
   796 
   796   // Failed evacuations cause some logical from-space objects to have
   797   // Failed evacuations cause some logical from-space objects to have
   797   // forwarding pointers to themselves.  Reset them.
   798   // forwarding pointers to themselves.  Reset them.
   798   void remove_self_forwarding_pointers();
   799   void remove_self_forwarding_pointers();
   799 
   800 
   800   // Restore the preserved mark words for objects with self-forwarding pointers.
       
   801   void restore_preserved_marks();
       
   802 
       
   803   // Restore the objects in the regions in the collection set after an
   801   // Restore the objects in the regions in the collection set after an
   804   // evacuation failure.
   802   // evacuation failure.
   805   void restore_after_evac_failure();
   803   void restore_after_evac_failure();
   806 
   804 
   807   // Stores marks with the corresponding oop that we need to preserve during evacuation
   805   PreservedMarksSet _preserved_marks_set;
   808   // failure.
       
   809   OopAndMarkOopStack*  _preserved_objs;
       
   810 
   806 
   811   // Preserve the mark of "obj", if necessary, in preparation for its mark
   807   // Preserve the mark of "obj", if necessary, in preparation for its mark
   812   // word being overwritten with a self-forwarding-pointer.
   808   // word being overwritten with a self-forwarding-pointer.
   813   void preserve_mark_during_evac_failure(uint worker_id, oop obj, markOop m);
   809   void preserve_mark_during_evac_failure(uint worker_id, oop obj, markOop m);
   814 
   810