aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkFrontBufferedStream.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-09-15 11:37:15 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-15 18:46:45 +0000
commit49f1f34438d3431f6d7e32847accd2ba96948a73 (patch)
treec4e0342c3350c546573fb2add99597e92c9ca66c /src/utils/SkFrontBufferedStream.cpp
parent226e2032e8e37068a409aeb37aac79608fbd315d (diff)
use unique_ptr for stream api
Bug: skia:6888 Change-Id: I3459b4913982a7cae1c0061697c82cc65ad9a2d8 Reviewed-on: https://skia-review.googlesource.com/26740 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/utils/SkFrontBufferedStream.cpp')
-rw-r--r--src/utils/SkFrontBufferedStream.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/utils/SkFrontBufferedStream.cpp b/src/utils/SkFrontBufferedStream.cpp
index 42b86f09e3..77c484af64 100644
--- a/src/utils/SkFrontBufferedStream.cpp
+++ b/src/utils/SkFrontBufferedStream.cpp
@@ -11,8 +11,8 @@
class FrontBufferedStream : public SkStreamRewindable {
public:
- // Called by Create.
- FrontBufferedStream(SkStream*, size_t bufferSize);
+ // Called by Make.
+ FrontBufferedStream(std::unique_ptr<SkStream>, size_t bufferSize);
size_t read(void* buffer, size_t size) override;
@@ -26,9 +26,15 @@ public:
size_t getLength() const override { return fLength; }
+#ifdef SK_SUPPORT_LEGACY_STREAM_API
SkStreamRewindable* duplicate() const override { return nullptr; }
+#endif
private:
+#ifndef SK_SUPPORT_LEGACY_STREAM_API
+ SkStreamRewindable* onDuplicate() const override { return nullptr; }
+#endif
+
std::unique_ptr<SkStream> fStream;
const bool fHasLength;
const size_t fLength;
@@ -61,17 +67,19 @@ private:
typedef SkStream INHERITED;
};
-SkStreamRewindable* SkFrontBufferedStream::Create(SkStream* stream, size_t bufferSize) {
- if (nullptr == stream) {
+std::unique_ptr<SkStreamRewindable> SkFrontBufferedStream::Make(std::unique_ptr<SkStream> stream,
+ size_t bufferSize) {
+ if (!stream) {
return nullptr;
}
- return new FrontBufferedStream(stream, bufferSize);
+ return std::unique_ptr<SkStreamRewindable>(new FrontBufferedStream(std::move(stream),
+ bufferSize));
}
-FrontBufferedStream::FrontBufferedStream(SkStream* stream, size_t bufferSize)
- : fStream(stream)
- , fHasLength(stream->hasPosition() && stream->hasLength())
- , fLength(stream->getLength() - stream->getPosition())
+FrontBufferedStream::FrontBufferedStream(std::unique_ptr<SkStream> stream, size_t bufferSize)
+ : fStream(std::move(stream))
+ , fHasLength(fStream->hasPosition() && fStream->hasLength())
+ , fLength(fStream->getLength() - fStream->getPosition())
, fOffset(0)
, fBufferedSoFar(0)
, fBufferSize(bufferSize)