Commit 5d79fcfd authored by Anton Bikineev's avatar Anton Bikineev Committed by Commit Bot

heap: Don't forget clear remembered sets before full GC

For minor GCs, we clear remembered sets after visiting them to
reduce potential cache misses. We also must not forget to clear them
after major GCs.

Bug: 1029379
Change-Id: Id8fc6ca300f308112513b9146e6ff6ccdd848399
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2013241
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#734464}
parent cdd84bb4
......@@ -1680,6 +1680,7 @@ void NormalPage::Unmark() {
}
header_address += header->size();
}
ClearCardTable();
}
#if defined(ADDRESS_SANITIZER)
......@@ -1849,6 +1850,7 @@ void LargeObjectPage::Unmark() {
if (header->IsMarked()) {
header->Unmark();
}
SetRemembered(false);
}
void LargeObjectPage::MakeConsistentForMutator() {
......
......@@ -903,7 +903,6 @@ class PLATFORM_EXPORT LargeObjectPage final : public BasePage {
// Remembers the page as containing inter-generational pointers.
void SetRemembered(bool remembered) {
DCHECK_NE(remembered, is_remembered_);
is_remembered_ = remembered;
}
bool IsRemembered() const { return is_remembered_; }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment