DescriptionFix Heap::Shrink to ensure that it does not free pages that are still in use.
Heap::Shrink is called from EnsureFromSpaceIsCommitted at the very start of the GC. At this moment live bytes counts on pages are in inconsistent states. Some pages might have been already swept but have not been yet reached by an incremental marker (or incremental marker is not in progress) and have live bytes count set to 0. Thus we can't rely only on LiveBytes to determine which pages can be released to the OS.
R=mstarzinger@chromium.org
BUG=100414
Committed: http://code.google.com/p/v8/source/detail?r=9953
Patch Set 1 #
Total comments: 2
Patch Set 2 : get rid of last_unswept_page_, add comment about Heap::ReserveSpace #
Total comments: 1
Messages
Total messages: 3 (0 generated)
|