7045662: G1: OopsInHeapRegionClosure::set_region() should not be virtual
Summary: make the method non-virtual, remove five unused closures, and fix a couple of copyright typos.
Reviewed-by: stefank, johnc, poonam
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Jun 08 21:48:38 2011 -0400
@@ -2470,21 +2470,6 @@
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;
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp Wed Jun 08 21:48:38 2011 -0400
@@ -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 @@
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 @@
bool do_header() { return false; }
};
-class FilterInHeapRegionAndIntoCSClosure : public OopsInHeapRegionClosure {
- G1CollectedHeap* _g1;
- OopsInHeapRegionClosure* _oc;
-public:
- FilterInHeapRegionAndIntoCSClosure(G1CollectedHeap* g1,
- OopsInHeapRegionClosure* oc) :
- _g1(g1), _oc(oc)
- {}
- template <class T> 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 <class T> 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;
--- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp Wed Jun 08 21:48:38 2011 -0400
@@ -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 <class T> 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 <class T> 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 <class T> inline void G1ParScanClosure::do_oop_nv(T* p) {
T heap_oop = oopDesc::load_heap_oop(p);
--- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp Wed Jun 08 21:48:38 2011 -0400
@@ -66,41 +66,6 @@
}
#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 <class T> 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 <class T> 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()),
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp Wed Jun 08 21:48:38 2011 -0400
@@ -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 @@
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 @@
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."
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSet.hpp Wed Jun 08 21:48:38 2011 -0400
@@ -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
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSets.hpp Wed Jun 08 15:31:51 2011 -0400
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSets.hpp Wed Jun 08 21:48:38 2011 -0400
@@ -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