Skip to content

Commit b4e5b28

Browse files
committedSep 6, 2021
8273221: Guard GCIdMark against nested calls
Reviewed-by: tschatzl, kbarrett
1 parent 4d25e6f commit b4e5b28

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed
 

‎src/hotspot/share/gc/shared/gcId.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ size_t GCId::print_prefix(char* buf, size_t len) {
6767
return 0;
6868
}
6969

70-
GCIdMark::GCIdMark() : _previous_gc_id(currentNamedthread()->gc_id()) {
70+
GCIdMark::GCIdMark() {
71+
assert(currentNamedthread()->gc_id() == GCId::undefined(), "nested");
7172
currentNamedthread()->set_gc_id(GCId::create());
7273
}
7374

74-
GCIdMark::GCIdMark(uint gc_id) : _previous_gc_id(currentNamedthread()->gc_id()) {
75+
GCIdMark::GCIdMark(uint gc_id) {
76+
assert(currentNamedthread()->gc_id() == GCId::undefined(), "nested");
7577
currentNamedthread()->set_gc_id(gc_id);
7678
}
7779

7880
GCIdMark::~GCIdMark() {
79-
currentNamedthread()->set_gc_id(_previous_gc_id);
81+
currentNamedthread()->set_gc_id(GCId::undefined());
8082
}

‎src/hotspot/share/gc/shared/gcId.hpp

-3
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ class GCId : public AllStatic {
4747
};
4848

4949
class GCIdMark : public StackObj {
50-
private:
51-
const uint _previous_gc_id;
52-
5350
public:
5451
GCIdMark();
5552
GCIdMark(uint gc_id);

0 commit comments

Comments
 (0)