Skip to content

Commit 54a9c3e

Browse files
committed
8133873: Simplify {Register,Unregister}NMethodOopClosure
Reviewed-by: tschatzl, kbarrett
1 parent 06d2620 commit 54a9c3e

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4204,8 +4204,12 @@ class RegisterNMethodOopClosure: public OopClosure {
42044204
G1CollectedHeap* _g1h;
42054205
nmethod* _nm;
42064206

4207-
template <class T> void do_oop_work(T* p) {
4208-
T heap_oop = RawAccess<>::oop_load(p);
4207+
public:
4208+
RegisterNMethodOopClosure(G1CollectedHeap* g1h, nmethod* nm) :
4209+
_g1h(g1h), _nm(nm) {}
4210+
4211+
void do_oop(oop* p) {
4212+
oop heap_oop = RawAccess<>::oop_load(p);
42094213
if (!CompressedOops::is_null(heap_oop)) {
42104214
oop obj = CompressedOops::decode_not_null(heap_oop);
42114215
HeapRegion* hr = _g1h->heap_region_containing(obj);
@@ -4219,20 +4223,19 @@ class RegisterNMethodOopClosure: public OopClosure {
42194223
}
42204224
}
42214225

4222-
public:
4223-
RegisterNMethodOopClosure(G1CollectedHeap* g1h, nmethod* nm) :
4224-
_g1h(g1h), _nm(nm) {}
4225-
4226-
void do_oop(oop* p) { do_oop_work(p); }
4227-
void do_oop(narrowOop* p) { do_oop_work(p); }
4226+
void do_oop(narrowOop* p) { ShouldNotReachHere(); }
42284227
};
42294228

42304229
class UnregisterNMethodOopClosure: public OopClosure {
42314230
G1CollectedHeap* _g1h;
42324231
nmethod* _nm;
42334232

4234-
template <class T> void do_oop_work(T* p) {
4235-
T heap_oop = RawAccess<>::oop_load(p);
4233+
public:
4234+
UnregisterNMethodOopClosure(G1CollectedHeap* g1h, nmethod* nm) :
4235+
_g1h(g1h), _nm(nm) {}
4236+
4237+
void do_oop(oop* p) {
4238+
oop heap_oop = RawAccess<>::oop_load(p);
42364239
if (!CompressedOops::is_null(heap_oop)) {
42374240
oop obj = CompressedOops::decode_not_null(heap_oop);
42384241
HeapRegion* hr = _g1h->heap_region_containing(obj);
@@ -4245,12 +4248,7 @@ class UnregisterNMethodOopClosure: public OopClosure {
42454248
}
42464249
}
42474250

4248-
public:
4249-
UnregisterNMethodOopClosure(G1CollectedHeap* g1h, nmethod* nm) :
4250-
_g1h(g1h), _nm(nm) {}
4251-
4252-
void do_oop(oop* p) { do_oop_work(p); }
4253-
void do_oop(narrowOop* p) { do_oop_work(p); }
4251+
void do_oop(narrowOop* p) { ShouldNotReachHere(); }
42544252
};
42554253

42564254
void G1CollectedHeap::register_nmethod(nmethod* nm) {

0 commit comments

Comments
 (0)