Kill dvmHeapSourceGetObjectBitmaps and aliasBitmaps.
In the beginning separate mark bitmaps and live bitmaps were kept for
each of the three heaps. Later, all heaps were allocated adjacent to
one another from a single contiguous tract of virtual memory. As
such, summary data structures such as the card table, mark bitmap, and
live bitmap, were similarly allocated from individual blocks of memory
instead of sparsely for each heap.
While the summary structures were changed, the sweeping routine was
left to assume separate bitmaps. In fact, the aliasBitmap hack was
added to continue the fiction of small bitmaps for each of the heaps.
It would have been preferable to change the sweeping routine, but that
routine was greatly entangled with generalities. Fortunately, those
entanglements have since been eliminated.
This change updates the sweeping routine to operate on memory address
ranges instead of whole bitmaps, obsoleting aliasBitmaps and its sole
caller. The bitmap sweep routine now receives a range of addresses
for sweeping. This range may span the entire bitmap or any contiguous
range within the span of the bitmap.
Change-Id: Iae206032738d6cad77e0625d27ae7b7d6551890d
5 files changed