Rework the newly-allocated region logic in RegionSpace.
- Mark large (and large tail) regions as "newly allocated" in RegionSpace::AllocLarge when they are allocated for non-evac purposes, the same way non-large regions were already marked as "newly allocated" in RegionSpace::AllocateRegion when they were allocated for non-evac purposes. - Clear the "newly allocated" status of regions only when setting them as (evac) from-space and non-evac from-space. This addresses an issue with Sticky-Bit (Generational) CC collection, where an assertion in ConcurrentCopying::VerifyNoMissingCardMarks could fail when a recently allocated large region held a dead large object holding a (presumably stale) object reference pointing to a newly allocated (non-large) region. Test: ART run-tests & gtests, libcore tests, JDWP tests (host & device) Test: Device/emulator boot test Bug: 67628039 Bug: 12687968 Change-Id: Idd20c159db9359ee783a421ec699d3e3aa450552
Loading
Please sign in to comment