Make classes of LOS objects non-movable.
When using Generational Concurrent Copying (CC) collection and no boot image, there is an unlikely case where the class of an object allocated the Large-Object Space (LOS) might be moved by a sticky-bit (minor) collection, potentially creating a stale reference in the `klass_` field of this large object. To prevent this situation, make all the classes of objects eligible to allocations in the LOS (large strings and primitive arrays) non-movable when running without a boot image. This is not an issue when running with a boot image, as these classes are in an image space, which is immune. Also disable run-test 669-moveable-string-class-equals, as this test expects the String class to be movable when running without a boot image. Test: art/test/testrunner/testrunner.py --no-image Bug: 67628039 Bug: 12687968 Bug: 68181300 Change-Id: Iefce8e13b4d6df96c31d77b7e53b4ba79b5e641c
Loading
Please sign in to comment