From: bsalomon@google.com Date: Tue, 14 Aug 2012 17:19:08 +0000 (+0000) Subject: Make SkTArray consider only the new count and reserve when determining how much to... X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~15188 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=137209f9f4b6ee08ca59a135909185cb0caf6d91;p=platform%2Fupstream%2FlibSkiaSharp.git 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 --- diff --git a/include/core/SkTArray.h b/include/core/SkTArray.h index 577e860..01fc142 100644 --- a/include/core/SkTArray.h +++ b/include/core/SkTArray.h @@ -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;