Skip to content

Commit 724de68

Browse files
committed
8342081: Shenandoah: Remove extra ShenandoahMarkUpdateRefsSuperClosure
Reviewed-by: ysr
1 parent e4ff553 commit 724de68

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

src/hotspot/share/gc/shenandoah/shenandoahOopClosures.hpp

+8-18
Original file line numberDiff line numberDiff line change
@@ -61,33 +61,23 @@ class ShenandoahMarkRefsSuperClosure : public MetadataVisitingOopIterateClosure
6161
}
6262
};
6363

64-
class ShenandoahMarkUpdateRefsSuperClosure : public ShenandoahMarkRefsSuperClosure {
65-
protected:
64+
template <ShenandoahGenerationType GENERATION>
65+
class ShenandoahMarkUpdateRefsClosure : public ShenandoahMarkRefsSuperClosure {
66+
private:
6667
ShenandoahHeap* const _heap;
6768

68-
template <class T, ShenandoahGenerationType GENERATION>
69+
template <class T>
6970
inline void work(T* p);
7071

7172
public:
72-
ShenandoahMarkUpdateRefsSuperClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) :
73+
ShenandoahMarkUpdateRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) :
7374
ShenandoahMarkRefsSuperClosure(q, rp),
7475
_heap(ShenandoahHeap::heap()) {
7576
assert(_heap->is_stw_gc_in_progress(), "Can only be used for STW GC");
76-
};
77-
};
78-
79-
template <ShenandoahGenerationType GENERATION>
80-
class ShenandoahMarkUpdateRefsClosure : public ShenandoahMarkUpdateRefsSuperClosure {
81-
private:
82-
template <class T>
83-
inline void do_oop_work(T* p) { work<T, GENERATION>(p); }
84-
85-
public:
86-
ShenandoahMarkUpdateRefsClosure(ShenandoahObjToScanQueue* q, ShenandoahReferenceProcessor* rp) :
87-
ShenandoahMarkUpdateRefsSuperClosure(q, rp) {}
77+
}
8878

89-
virtual void do_oop(narrowOop* p) { do_oop_work(p); }
90-
virtual void do_oop(oop* p) { do_oop_work(p); }
79+
virtual void do_oop(narrowOop* p) { work(p); }
80+
virtual void do_oop(oop* p) { work(p); }
9181
};
9282

9383
template <ShenandoahGenerationType GENERATION>

src/hotspot/share/gc/shenandoah/shenandoahOopClosures.inline.hpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ inline void ShenandoahMarkRefsSuperClosure::work(T* p) {
3535
ShenandoahMark::mark_through_ref<T, GENERATION>(p, _queue, _mark_context, _weak);
3636
}
3737

38-
template<class T, ShenandoahGenerationType GENERATION>
39-
inline void ShenandoahMarkUpdateRefsSuperClosure::work(T* p) {
38+
template<ShenandoahGenerationType GENERATION>
39+
template<class T>
40+
inline void ShenandoahMarkUpdateRefsClosure<GENERATION>::work(T* p) {
4041
// Update the location
4142
_heap->update_with_forwarded(p);
4243

0 commit comments

Comments
 (0)