Commit 4b361a87 authored by Nicolas Geoffray's avatar Nicolas Geoffray
Browse files

Fix region space when used with SetLengthToUsableSizeVisitor.

The region space relies on obj->SizeOf for some of its logic.
By having SetLengthToUsableSizeVisitor "change" the SizeOf
what's being allocated.

The bug happens during RegionSpace::ClearFromSpace: for unevac regions
we iterate over following regions. If LiveBytes != Top() - Begin()
(which happen for large allocations using SetLengthToUsableSizeVisitor),
we break the loop.

The next region to analyze is a large tail, and we see LiveBytes() == 0
(tails apparently always have live bytes == 0), the code is then
happy to release the large tail, even though the large object is still
live.

bug: 37187694
bug: 62889232
Test: 659-unpadded-array
Change-Id: Ia99b67256b0e28a80095bd5cdae9068ea5e8b4a8
parent 4ca07d1e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment