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:
parent
686e680193
commit
137209f9f4
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user