diff options
author | 2014-10-21 07:12:52 -0700 | |
---|---|---|
committer | 2014-10-21 07:12:52 -0700 | |
commit | 1f66e4539177297545270ff3cbd1d8fa6c3481ac (patch) | |
tree | de35ac7407e5552f8bc2d817a83f8f0fcde3272a | |
parent | b0e89dcc1d8c1c2f9f7ffb45e8609cdb4a68104b (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.cpp | 3 |
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; |