diff options
author | 2016-09-30 13:34:19 -0700 | |
---|---|---|
committer | 2016-09-30 13:34:19 -0700 | |
commit | 5776508126534db2af97d560588e7046e745df65 (patch) | |
tree | 2925a45e91f235ebe6b8413191d7cf5ddda44dda /include/core/SkCanvas.h | |
parent | f6566314f84feaf7906fe89ac9cab694dfd75451 (diff) |
Add a SkRWBuffer reserve mechanism
Currently, Chromium stores segmented data in a SharedBuffer and appends
to SkRWBuffer one segment at a time:
const char* segment = 0;
for (size_t length = data->getSomeData(segment, m_rwBuffer->size());
length; length = data->getSomeData(segment, m_rwBuffer->size())) {
m_rwBuffer->append(segment, length, remaining);
}
This can yield a bunch of just-above-4k allocations => wasted RAM due to
internal fragmentation.
Ideally, we'd want a SkRWBuffer::reserve(size_t bytes) API, but the
current internals don't support that trivially.
Alternatively, the caller can pass a reserve hint at append() time.
BUG=chromium:651698
R=scroggo@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2385803002
Review-Url: https://codereview.chromium.org/2385803002
Diffstat (limited to 'include/core/SkCanvas.h')
0 files changed, 0 insertions, 0 deletions