mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-06 14:10:36 +00:00
Merge
This commit is contained in:
commit
f12e5848bd
@ -888,7 +888,16 @@ class CheckBitmapClearHRClosure : public HeapRegionClosure {
|
||||
}
|
||||
|
||||
virtual bool doHeapRegion(HeapRegion* r) {
|
||||
return _bitmap->getNextMarkedWordAddress(r->bottom(), r->end()) != r->end();
|
||||
// This closure can be called concurrently to the mutator, so we must make sure
|
||||
// that the result of the getNextMarkedWordAddress() call is compared to the
|
||||
// value passed to it as limit to detect any found bits.
|
||||
// We can use the region's orig_end() for the limit and the comparison value
|
||||
// as it always contains the "real" end of the region that never changes and
|
||||
// has no side effects.
|
||||
// Due to the latter, there can also be no problem with the compiler generating
|
||||
// reloads of the orig_end() call.
|
||||
HeapWord* end = r->orig_end();
|
||||
return _bitmap->getNextMarkedWordAddress(r->bottom(), end) != end;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -566,7 +566,7 @@ class HeapRegion: public G1OffsetTableContigSpace {
|
||||
void set_next_dirty_cards_region(HeapRegion* hr) { _next_dirty_cards_region = hr; }
|
||||
bool is_on_dirty_cards_region_list() const { return get_next_dirty_cards_region() != NULL; }
|
||||
|
||||
HeapWord* orig_end() { return _orig_end; }
|
||||
HeapWord* orig_end() const { return _orig_end; }
|
||||
|
||||
// Reset HR stuff to default values.
|
||||
void hr_clear(bool par, bool clear_space, bool locked = false);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user