summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp')
-rw-r--r--chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp b/chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp
index d44389b7c81..8cb3931082c 100644
--- a/chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp
+++ b/chromium/third_party/skia/src/utils/SkFrontBufferedStream.cpp
@@ -24,14 +24,16 @@ public:
virtual size_t getPosition() const SK_OVERRIDE { return fOffset; }
- virtual bool hasLength() const SK_OVERRIDE;
+ virtual bool hasLength() const SK_OVERRIDE { return fHasLength; }
- virtual size_t getLength() const SK_OVERRIDE;
+ virtual size_t getLength() const SK_OVERRIDE { return fLength; }
virtual SkStreamRewindable* duplicate() const SK_OVERRIDE { return NULL; }
private:
SkAutoTUnref<SkStream> fStream;
+ const bool fHasLength;
+ const size_t fLength;
// Current offset into the stream. Always >= 0.
size_t fOffset;
// Amount that has been buffered by calls to read. Will always be less than
@@ -70,6 +72,8 @@ SkStreamRewindable* SkFrontBufferedStream::Create(SkStream* stream, size_t buffe
FrontBufferedStream::FrontBufferedStream(SkStream* stream, size_t bufferSize)
: fStream(SkRef(stream))
+ , fHasLength(stream->hasPosition() && stream->hasLength())
+ , fLength(stream->getLength() - stream->getPosition())
, fOffset(0)
, fBufferedSoFar(0)
, fBufferSize(bufferSize)
@@ -94,14 +98,6 @@ bool FrontBufferedStream::rewind() {
return false;
}
-bool FrontBufferedStream::hasLength() const {
- return fStream->hasLength();
-}
-
-size_t FrontBufferedStream::getLength() const {
- return fStream->getLength();
-}
-
size_t FrontBufferedStream::readFromBuffer(char* dst, size_t size) {
SkASSERT(fOffset < fBufferedSoFar);
// Some data has already been copied to fBuffer. Read up to the