Don't mark new non-moving objs in young GC
During a young GC, there is a small window during which we allowed non-moving objects on the allocation stack to be pushed to marking stack (and thereby setting the corresponding live-bit) while done_scanning_ is still false. If a heapdump is taken after such a GC cycle, it leads to visiting such objects twice. This change fixes the problem by ensuring that objects on allocation stack are not marked in a GC cycle, as expected. Test: art/test/testrunner/testrunner.py --target Test: Flash device, adb shell am dumpheap <gms|systemui|system_server> Bug: 117426281 Change-Id: Icbcff2596241f1f87d9cebea859de3dd10041036
Loading
Please sign in to comment