diff options
author | 2016-09-30 10:52:08 -0700 | |
---|---|---|
committer | 2016-09-30 10:52:08 -0700 | |
commit | 2e36e88f40c8a37043d5b9ef17bc72b69a394b95 (patch) | |
tree | 723f445fa0287a76cc219117f5e0bdf0c9415020 | |
parent | c8deb023344211979476490d9296d42ed8538ba2 (diff) |
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
-rw-r--r-- | src/core/SkRWBuffer.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
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(); |