aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2014-10-21 07:12:52 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-21 07:12:52 -0700
commit1f66e4539177297545270ff3cbd1d8fa6c3481ac (patch)
treede35ac7407e5552f8bc2d817a83f8f0fcde3272a
parentb0e89dcc1d8c1c2f9f7ffb45e8609cdb4a68104b (diff)
Add an assert that we still have a buffer to readFromBuffer().
sk_free(fBuffer.detach()) means fBuffer will be left as NULL, not a zero-length malloc. BUG=skia: Review URL: https://codereview.chromium.org/669813002
-rw-r--r--src/utils/SkFrontBufferedStream.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/utils/SkFrontBufferedStream.cpp b/src/utils/SkFrontBufferedStream.cpp
index 8cb3931082..9a666dcc7e 100644
--- a/src/utils/SkFrontBufferedStream.cpp
+++ b/src/utils/SkFrontBufferedStream.cpp
@@ -119,6 +119,7 @@ size_t FrontBufferedStream::readFromBuffer(char* dst, size_t size) {
size_t FrontBufferedStream::bufferAndWriteTo(char* dst, size_t size) {
SkASSERT(size > 0);
SkASSERT(fOffset >= fBufferedSoFar);
+ SkASSERT(fBuffer);
// Data needs to be buffered. Buffer up to the lesser of the size requested
// and the remainder of the max buffer size.
const size_t bytesToBuffer = SkTMin(size, fBufferSize - fBufferedSoFar);
@@ -148,7 +149,7 @@ size_t FrontBufferedStream::readDirectlyFromStream(char* dst, size_t size) {
// If we have read past the end of the buffer, rewinding is no longer
// supported, so we can go ahead and free the memory.
if (bytesReadDirectly > 0) {
- fBuffer.reset(0);
+ sk_free(fBuffer.detach());
}
return bytesReadDirectly;