[heap] Make assert in Page::ShrinkToHighWaterMark more robust.
Currently Page::ShrinkToHighWaterMark checks that there is only one filler in the to-be-freed area at the end of the page. This does not hold if an allocation observer is active. We should instead check that the to-be-freed area does not contain allocated objects and will not contain allocated objects: 1) Following chain of fillers we arrive at the end of the page. 2) The free list of the page is empty. This patch also changes PagedSpace::ResetFreeList to evict free list entries of each page, instead of just reseting the global free list. It also removes invalidation of free list categories. Now FreeList::EvictFreeListItems simply evicts free list entries without invalidating free list categories. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I6051578ec2c91c9614d14c7a6ce188d2db5ace3b Reviewed-on: https://chromium-review.googlesource.com/822571 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#50040}
Showing
Please
register
or
sign in
to comment