1.1 --- a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Thu Aug 25 02:57:46 2011 -0700 1.2 +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Mon Aug 29 10:13:06 2011 -0700 1.3 @@ -50,6 +50,8 @@ 1.4 G1RemSet* _g1_rem; 1.5 ConcurrentMark* _cm; 1.6 G1ParScanThreadState* _par_scan_state; 1.7 + bool _during_initial_mark; 1.8 + bool _mark_in_progress; 1.9 public: 1.10 G1ParClosureSuper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state); 1.11 bool apply_to_weak_ref_discovered_field() { return true; } 1.12 @@ -102,8 +104,8 @@ 1.13 class G1ParCopyHelper : public G1ParClosureSuper { 1.14 G1ParScanClosure *_scanner; 1.15 protected: 1.16 - template <class T> void mark_forwardee(T* p); 1.17 - oop copy_to_survivor_space(oop obj); 1.18 + template <class T> void mark_object(T* p); 1.19 + oop copy_to_survivor_space(oop obj, bool should_mark_copy); 1.20 public: 1.21 G1ParCopyHelper(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state, 1.22 G1ParScanClosure *scanner) : 1.23 @@ -111,7 +113,7 @@ 1.24 }; 1.25 1.26 template<bool do_gen_barrier, G1Barrier barrier, 1.27 - bool do_mark_forwardee> 1.28 + bool do_mark_object> 1.29 class G1ParCopyClosure : public G1ParCopyHelper { 1.30 G1ParScanClosure _scanner; 1.31 template <class T> void do_oop_work(T* p); 1.32 @@ -120,8 +122,6 @@ 1.33 _scanner(g1, par_scan_state), G1ParCopyHelper(g1, par_scan_state, &_scanner) { } 1.34 template <class T> void do_oop_nv(T* p) { 1.35 do_oop_work(p); 1.36 - if (do_mark_forwardee) 1.37 - mark_forwardee(p); 1.38 } 1.39 virtual void do_oop(oop* p) { do_oop_nv(p); } 1.40 virtual void do_oop(narrowOop* p) { do_oop_nv(p); }