Make SkTArray consider only the new count and reserve when determining how much to alloc

Review URL: http://codereview.appspot.com/6459084


git-svn-id: http://skia.googlecode.com/svn/trunk@5084 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
bsalomon@google.com 2012-08-14 17:19:08 +00:00
parent 686e680193
commit 137209f9f4

View File

@ -331,13 +331,11 @@ private:
int newCount = fCount + delta;
int newAllocCount = fAllocCount;
if (newCount > fAllocCount) {
newAllocCount = SkMax32(newCount + ((newCount + 1) >> 1),
fReserveCount);
} else if (newCount < fAllocCount / 3) {
newAllocCount = SkMax32(fAllocCount / 2, fReserveCount);
if (newCount > fAllocCount || newCount < (fAllocCount / 3)) {
// whether we're growing or shrinking, we leave at least 50% extra space for future
// growth (clamped to the reserve count).
newAllocCount = SkMax32(newCount + ((newCount + 1) >> 1), fReserveCount);
}
if (newAllocCount != fAllocCount) {
fAllocCount = newAllocCount;