diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2017-07-06 15:30:10 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2017-07-07 11:28:08 +0100 |
commit | 4b361a87520643c888a3d2c52dffa050fabd7a0b (patch) | |
tree | 6864a78324a58c3c44895cb63bf86b21244250e1 /test/MultiDex | |
parent | 4ca07d1e8033a823b1732499ead728c47ea023c7 (diff) |
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
Diffstat (limited to 'test/MultiDex')
0 files changed, 0 insertions, 0 deletions