8281035: Serial: Move RemoveForwardedPointerClosure to local scope

Reviewed-by: kbarrett, tschatzl
This commit is contained in:
Albert Mingkun Yang 2022-02-02 10:43:02 +00:00
parent ae2504b469
commit 4ea6037ea5
3 changed files with 15 additions and 14 deletions

View File

@ -669,9 +669,21 @@ void DefNewGeneration::init_assuming_no_promotion_failure() {
}
void DefNewGeneration::remove_forwarding_pointers() {
RemoveForwardedPointerClosure rspc;
eden()->object_iterate(&rspc);
from()->object_iterate(&rspc);
assert(_promotion_failed, "precondition");
// Will enter Full GC soon due to failed promotion. Must reset the mark word
// of objs in young-gen so that no objs are marked (forwarded) when Full GC
// starts. (The mark word is overloaded: `is_marked()` == `is_forwarded()`.)
struct ResetForwardedMarkWord : ObjectClosure {
void do_object(oop obj) override {
if (obj->is_forwarded()) {
obj->init_mark();
}
}
} cl;
eden()->object_iterate(&cl);
from()->object_iterate(&cl);
restore_preserved_marks();
}

View File

@ -71,12 +71,6 @@ void PreservedMarks::assert_empty() {
}
#endif // ndef PRODUCT
void RemoveForwardedPointerClosure::do_object(oop obj) {
if (obj->is_forwarded()) {
PreservedMarks::init_forwarded_mark(obj);
}
}
void PreservedMarksSet::init(uint num) {
assert(_stacks == nullptr && _num == 0, "do not re-initialize");
assert(num > 0, "pre-condition");

View File

@ -75,11 +75,6 @@ public:
~PreservedMarks() { assert_empty(); }
};
class RemoveForwardedPointerClosure: public ObjectClosure {
public:
virtual void do_object(oop obj);
};
class PreservedMarksSet : public CHeapObj<mtGC> {
private:
// true -> _stacks will be allocated in the C heap