From 2e36e88f40c8a37043d5b9ef17bc72b69a394b95 Mon Sep 17 00:00:00 2001 From: fmalita Date: Fri, 30 Sep 2016 10:52:08 -0700 Subject: SkRWBuffer: preallocate 'initialCapacity' We're currently ignoring the hint, resulting in multiple unneeded allocations later. BUG=chromium:651698 R=scroggo@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2384763002 Review-Url: https://codereview.chromium.org/2384763002 --- src/core/SkRWBuffer.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/SkRWBuffer.cpp b/src/core/SkRWBuffer.cpp index 07a537a640..41f1a287d2 100644 --- a/src/core/SkRWBuffer.cpp +++ b/src/core/SkRWBuffer.cpp @@ -181,7 +181,12 @@ bool SkROBuffer::Iter::next() { /////////////////////////////////////////////////////////////////////////////////////////////////// -SkRWBuffer::SkRWBuffer(size_t initialCapacity) : fHead(nullptr), fTail(nullptr), fTotalUsed(0) {} +SkRWBuffer::SkRWBuffer(size_t initialCapacity) : fHead(nullptr), fTail(nullptr), fTotalUsed(0) { + if (initialCapacity) { + fHead = SkBufferHead::Alloc(initialCapacity); + fTail = &fHead->fBlock; + } +} SkRWBuffer::~SkRWBuffer() { this->validate(); -- cgit v1.2.3