Commit 4848d525 authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

[oilpan] Destroy linear allocation area before marking

Bug: chromium:757440
Change-Id: I7ae80b85a64245346d9b7a41aea351b80c86b4b9
Reviewed-on: https://chromium-review.googlesource.com/941221Reviewed-by: default avatarKeishi Hattori <keishi@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539833}
parent 9af53747
...@@ -438,6 +438,13 @@ NormalPageArena::NormalPageArena(ThreadState* state, int index) ...@@ -438,6 +438,13 @@ NormalPageArena::NormalPageArena(ThreadState* state, int index)
ClearFreeLists(); ClearFreeLists();
} }
void NormalPageArena::MakeConsistentForGC() {
BaseArena::MakeConsistentForGC();
// Remove linear allocation area.
SetAllocationPoint(nullptr, 0);
}
void NormalPageArena::ClearFreeLists() { void NormalPageArena::ClearFreeLists() {
SetAllocationPoint(nullptr, 0); SetAllocationPoint(nullptr, 0);
free_list_.Clear(); free_list_.Clear();
......
...@@ -779,7 +779,7 @@ class PLATFORM_EXPORT BaseArena { ...@@ -779,7 +779,7 @@ class PLATFORM_EXPORT BaseArena {
#endif #endif
virtual void TakeFreelistSnapshot(const String& dump_base_name) {} virtual void TakeFreelistSnapshot(const String& dump_base_name) {}
virtual void ClearFreeLists() {} virtual void ClearFreeLists() {}
void MakeConsistentForGC(); virtual void MakeConsistentForGC();
void MakeConsistentForMutator(); void MakeConsistentForMutator();
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
virtual bool IsConsistentForGC() = 0; virtual bool IsConsistentForGC() = 0;
...@@ -877,6 +877,8 @@ class PLATFORM_EXPORT NormalPageArena final : public BaseArena { ...@@ -877,6 +877,8 @@ class PLATFORM_EXPORT NormalPageArena final : public BaseArena {
(address < (CurrentAllocationPoint() + RemainingAllocationSize())); (address < (CurrentAllocationPoint() + RemainingAllocationSize()));
} }
void MakeConsistentForGC() override;
private: private:
void AllocatePage(); void AllocatePage();
......
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