aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2016-09-30 10:52:08 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-30 10:52:08 -0700
commit2e36e88f40c8a37043d5b9ef17bc72b69a394b95 (patch)
tree723f445fa0287a76cc219117f5e0bdf0c9415020
parentc8deb023344211979476490d9296d42ed8538ba2 (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.cpp7
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();