diff --git a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 1895b09f3390e7eda80df5ac487467c896cca3de..14f44427ea9a527a3d0a298c346fa7e68d203eb4 100644 --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -2470,21 +2470,6 @@ record_collection_pause_start(double start_time_sec, size_t start_used) { G1CollectorPolicy::record_collection_pause_start(start_time_sec, start_used); } -class NextNonCSElemFinder: public HeapRegionClosure { - HeapRegion* _res; -public: - NextNonCSElemFinder(): _res(NULL) {} - bool doHeapRegion(HeapRegion* r) { - if (!r->in_collection_set()) { - _res = r; - return true; - } else { - return false; - } - } - HeapRegion* res() { return _res; } -}; - class KnownGarbageClosure: public HeapRegionClosure { CollectionSetChooser* _hrSorted; diff --git a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp index 26e25f4f61b0bda054dbfe93441217e7654bc3b1..4aa9bc7b13f364ccb79642fa3a57b3629035b28b 100644 --- a/src/share/vm/gc_implementation/g1/g1OopClosures.hpp +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ class OopsInHeapRegionClosure: public OopsInGenClosure { protected: HeapRegion* _from; public: - virtual void set_region(HeapRegion* from) { _from = from; } + void set_region(HeapRegion* from) { _from = from; } }; class G1ParClosureSuper : public OopsInHeapRegionClosure { @@ -161,44 +161,6 @@ public: bool do_header() { return false; } }; -class FilterInHeapRegionAndIntoCSClosure : public OopsInHeapRegionClosure { - G1CollectedHeap* _g1; - OopsInHeapRegionClosure* _oc; -public: - FilterInHeapRegionAndIntoCSClosure(G1CollectedHeap* g1, - OopsInHeapRegionClosure* oc) : - _g1(g1), _oc(oc) - {} - template void do_oop_nv(T* p); - virtual void do_oop(oop* p) { do_oop_nv(p); } - virtual void do_oop(narrowOop* p) { do_oop_nv(p); } - bool apply_to_weak_ref_discovered_field() { return true; } - bool do_header() { return false; } - void set_region(HeapRegion* from) { - _oc->set_region(from); - } -}; - -class FilterAndMarkInHeapRegionAndIntoCSClosure : public OopsInHeapRegionClosure { - G1CollectedHeap* _g1; - ConcurrentMark* _cm; - OopsInHeapRegionClosure* _oc; -public: - FilterAndMarkInHeapRegionAndIntoCSClosure(G1CollectedHeap* g1, - OopsInHeapRegionClosure* oc, - ConcurrentMark* cm) - : _g1(g1), _oc(oc), _cm(cm) { } - - template void do_oop_nv(T* p); - virtual void do_oop(oop* p) { do_oop_nv(p); } - virtual void do_oop(narrowOop* p) { do_oop_nv(p); } - bool apply_to_weak_ref_discovered_field() { return true; } - bool do_header() { return false; } - void set_region(HeapRegion* from) { - _oc->set_region(from); - } -}; - class FilterOutOfRegionClosure: public OopClosure { HeapWord* _r_bottom; HeapWord* _r_end; diff --git a/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp b/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp index c223336af8921b9675cfa647ce979def72ee69d4..58d0330f5322f39e8f5d6fb13b52c947989c8311 100644 --- a/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp +++ b/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -66,27 +66,6 @@ template inline void FilterOutOfRegionClosure::do_oop_nv(T* p) { } } -template inline void FilterInHeapRegionAndIntoCSClosure::do_oop_nv(T* p) { - T heap_oop = oopDesc::load_heap_oop(p); - if (!oopDesc::is_null(heap_oop) && - _g1->obj_in_cs(oopDesc::decode_heap_oop_not_null(heap_oop))) - _oc->do_oop(p); -} - -template inline void FilterAndMarkInHeapRegionAndIntoCSClosure::do_oop_nv(T* p) { - T heap_oop = oopDesc::load_heap_oop(p); - if (!oopDesc::is_null(heap_oop)) { - oop obj = oopDesc::decode_heap_oop_not_null(heap_oop); - HeapRegion* hr = _g1->heap_region_containing((HeapWord*) obj); - if (hr != NULL) { - if (hr->in_collection_set()) - _oc->do_oop(p); - else if (!hr->is_young()) - _cm->grayRoot(obj); - } - } -} - // This closure is applied to the fields of the objects that have just been copied. template inline void G1ParScanClosure::do_oop_nv(T* p) { T heap_oop = oopDesc::load_heap_oop(p); diff --git a/src/share/vm/gc_implementation/g1/g1RemSet.cpp b/src/share/vm/gc_implementation/g1/g1RemSet.cpp index 6794174c1e91da5dca0da7d3df477b2a481db6aa..9d40e83cf3db10157fb28c35ea422da98ecf3cf6 100644 --- a/src/share/vm/gc_implementation/g1/g1RemSet.cpp +++ b/src/share/vm/gc_implementation/g1/g1RemSet.cpp @@ -66,41 +66,6 @@ void ct_freq_update_histo_and_reset() { } #endif - -class IntoCSOopClosure: public OopsInHeapRegionClosure { - OopsInHeapRegionClosure* _blk; - G1CollectedHeap* _g1; -public: - IntoCSOopClosure(G1CollectedHeap* g1, OopsInHeapRegionClosure* blk) : - _g1(g1), _blk(blk) {} - void set_region(HeapRegion* from) { - _blk->set_region(from); - } - virtual void do_oop(narrowOop* p) { do_oop_work(p); } - virtual void do_oop( oop* p) { do_oop_work(p); } - template void do_oop_work(T* p) { - oop obj = oopDesc::load_decode_heap_oop(p); - if (_g1->obj_in_cs(obj)) _blk->do_oop(p); - } - bool apply_to_weak_ref_discovered_field() { return true; } - bool idempotent() { return true; } -}; - -class VerifyRSCleanCardOopClosure: public OopClosure { - G1CollectedHeap* _g1; -public: - VerifyRSCleanCardOopClosure(G1CollectedHeap* g1) : _g1(g1) {} - - virtual void do_oop(narrowOop* p) { do_oop_work(p); } - virtual void do_oop( oop* p) { do_oop_work(p); } - template void do_oop_work(T* p) { - oop obj = oopDesc::load_decode_heap_oop(p); - HeapRegion* to = _g1->heap_region_containing(obj); - guarantee(to == NULL || !to->in_collection_set(), - "Missed a rem set member."); - } -}; - G1RemSet::G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs) : _g1(g1), _conc_refine_cards(0), _ct_bs(ct_bs), _g1p(_g1->g1_policy()), diff --git a/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp b/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp index 60780036700dde72280d0e5c1da78db528be98cc..cd65c39639425df44ecdfd772876e31b1fc1e9a1 100644 --- a/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp +++ b/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,8 +45,6 @@ typedef G1ParCopyClosure G1ParScanHeapEvacClosure; class FilterIntoCSClosure; class FilterOutOfRegionClosure; -class FilterInHeapRegionAndIntoCSClosure; -class FilterAndMarkInHeapRegionAndIntoCSClosure; #ifdef FURTHER_SPECIALIZED_OOP_OOP_ITERATE_CLOSURES #error "FURTHER_SPECIALIZED_OOP_OOP_ITERATE_CLOSURES already defined." @@ -57,9 +55,7 @@ class FilterAndMarkInHeapRegionAndIntoCSClosure; f(G1ParScanClosure,_nv) \ f(G1ParPushHeapRSClosure,_nv) \ f(FilterIntoCSClosure,_nv) \ - f(FilterOutOfRegionClosure,_nv) \ - f(FilterInHeapRegionAndIntoCSClosure,_nv) \ - f(FilterAndMarkInHeapRegionAndIntoCSClosure,_nv) + f(FilterOutOfRegionClosure,_nv) #ifdef FURTHER_SPECIALIZED_SINCE_SAVE_MARKS_CLOSURES #error "FURTHER_SPECIALIZED_SINCE_SAVE_MARKS_CLOSURES already defined." diff --git a/src/share/vm/gc_implementation/g1/heapRegionSet.hpp b/src/share/vm/gc_implementation/g1/heapRegionSet.hpp index ffb106f79465a5c06b1ab37fbe1e8f1aea888753..03fb764ff619056573a04b73756d05eaa430d165 100644 --- a/src/share/vm/gc_implementation/g1/heapRegionSet.hpp +++ b/src/share/vm/gc_implementation/g1/heapRegionSet.hpp @@ -1,5 +1,5 @@ /* - * copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/src/share/vm/gc_implementation/g1/heapRegionSets.hpp b/src/share/vm/gc_implementation/g1/heapRegionSets.hpp index c00327c578f1c5bcb3d82d02051dcde889344244..f17799660d6f828b941ac0fff3bd5826576b7cbf 100644 --- a/src/share/vm/gc_implementation/g1/heapRegionSets.hpp +++ b/src/share/vm/gc_implementation/g1/heapRegionSets.hpp @@ -1,5 +1,5 @@ /* - * copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it