hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp
changeset 22901 3b4e9802e94f
parent 22761 3dca45188405
child 22903 4a0602246320
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Fri Feb 21 10:19:09 2014 +0100
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp	Mon Feb 24 09:40:21 2014 +0100
@@ -48,12 +48,8 @@
 class G1ParClosureSuper : public OopsInHeapRegionClosure {
 protected:
   G1CollectedHeap* _g1;
-  G1RemSet* _g1_rem;
-  ConcurrentMark* _cm;
   G1ParScanThreadState* _par_scan_state;
   uint _worker_id;
-  bool _during_initial_mark;
-  bool _mark_in_progress;
 public:
   G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state);
   bool apply_to_weak_ref_discovered_field() { return true; }
@@ -133,12 +129,21 @@
 
 // Add back base class for metadata
 class G1ParCopyHelper : public G1ParClosureSuper {
+protected:
   Klass* _scanned_klass;
+  ConcurrentMark* _cm;
 
+  // Mark the object if it's not already marked. This is used to mark
+  // objects pointed to by roots that are guaranteed not to move
+  // during the GC (i.e., non-CSet objects). It is MT-safe.
+  void mark_object(oop obj);
+
+  // Mark the object if it's not already marked. This is used to mark
+  // objects pointed to by roots that have been forwarded during a
+  // GC. It is MT-safe.
+  void mark_forwarded_object(oop from_obj, oop to_obj);
  public:
-  G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state) :
-      _scanned_klass(NULL),
-      G1ParClosureSuper(g1, par_scan_state) {}
+  G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state);
 
   void set_scanned_klass(Klass* k) { _scanned_klass = k; }
   template <class T> void do_klass_barrier(T* p, oop new_obj);
@@ -150,16 +155,6 @@
   template <class T> void do_oop_work(T* p);
 
 protected:
-  // Mark the object if it's not already marked. This is used to mark
-  // objects pointed to by roots that are guaranteed not to move
-  // during the GC (i.e., non-CSet objects). It is MT-safe.
-  void mark_object(oop obj);
-
-  // Mark the object if it's not already marked. This is used to mark
-  // objects pointed to by roots that have been forwarded during a
-  // GC. It is MT-safe.
-  void mark_forwarded_object(oop from_obj, oop to_obj);
-
   oop copy_to_survivor_space(oop obj);
 
 public:
@@ -172,9 +167,7 @@
 
   G1ParScanClosure* scanner() { return &_scanner; }
 
-  template <class T> void do_oop_nv(T* p) {
-    do_oop_work(p);
-  }
+  template <class T> void do_oop_nv(T* p) { do_oop_work(p); }
   virtual void do_oop(oop* p)       { do_oop_nv(p); }
   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
 };