src/share/vm/gc_implementation/g1/g1OopClosures.hpp

changeset 6329
86b64209f715
parent 6269
5a9a209853bf
child 6331
5d492d192cbf
     1.1 --- a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Wed Jan 08 13:20:33 2014 +0100
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Wed Feb 26 15:32:40 2014 +0100
     1.3 @@ -48,12 +48,8 @@
     1.4  class G1ParClosureSuper : public OopsInHeapRegionClosure {
     1.5  protected:
     1.6    G1CollectedHeap* _g1;
     1.7 -  G1RemSet* _g1_rem;
     1.8 -  ConcurrentMark* _cm;
     1.9    G1ParScanThreadState* _par_scan_state;
    1.10    uint _worker_id;
    1.11 -  bool _during_initial_mark;
    1.12 -  bool _mark_in_progress;
    1.13  public:
    1.14    G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state);
    1.15    bool apply_to_weak_ref_discovered_field() { return true; }
    1.16 @@ -133,12 +129,21 @@
    1.17  
    1.18  // Add back base class for metadata
    1.19  class G1ParCopyHelper : public G1ParClosureSuper {
    1.20 +protected:
    1.21    Klass* _scanned_klass;
    1.22 +  ConcurrentMark* _cm;
    1.23  
    1.24 +  // Mark the object if it's not already marked. This is used to mark
    1.25 +  // objects pointed to by roots that are guaranteed not to move
    1.26 +  // during the GC (i.e., non-CSet objects). It is MT-safe.
    1.27 +  void mark_object(oop obj);
    1.28 +
    1.29 +  // Mark the object if it's not already marked. This is used to mark
    1.30 +  // objects pointed to by roots that have been forwarded during a
    1.31 +  // GC. It is MT-safe.
    1.32 +  void mark_forwarded_object(oop from_obj, oop to_obj);
    1.33   public:
    1.34 -  G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state) :
    1.35 -      _scanned_klass(NULL),
    1.36 -      G1ParClosureSuper(g1, par_scan_state) {}
    1.37 +  G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state);
    1.38  
    1.39    void set_scanned_klass(Klass* k) { _scanned_klass = k; }
    1.40    template <class T> void do_klass_barrier(T* p, oop new_obj);
    1.41 @@ -150,16 +155,6 @@
    1.42    template <class T> void do_oop_work(T* p);
    1.43  
    1.44  protected:
    1.45 -  // Mark the object if it's not already marked. This is used to mark
    1.46 -  // objects pointed to by roots that are guaranteed not to move
    1.47 -  // during the GC (i.e., non-CSet objects). It is MT-safe.
    1.48 -  void mark_object(oop obj);
    1.49 -
    1.50 -  // Mark the object if it's not already marked. This is used to mark
    1.51 -  // objects pointed to by roots that have been forwarded during a
    1.52 -  // GC. It is MT-safe.
    1.53 -  void mark_forwarded_object(oop from_obj, oop to_obj);
    1.54 -
    1.55    oop copy_to_survivor_space(oop obj);
    1.56  
    1.57  public:
    1.58 @@ -172,9 +167,7 @@
    1.59  
    1.60    G1ParScanClosure* scanner() { return &_scanner; }
    1.61  
    1.62 -  template <class T> void do_oop_nv(T* p) {
    1.63 -    do_oop_work(p);
    1.64 -  }
    1.65 +  template <class T> void do_oop_nv(T* p) { do_oop_work(p); }
    1.66    virtual void do_oop(oop* p)       { do_oop_nv(p); }
    1.67    virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
    1.68  };

mercurial