diff options
author | Mike Reed <reed@google.com> | 2017-07-23 15:30:02 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-07-25 15:35:23 +0000 |
commit | ede7bac43fbc69b9fdf1c178890ba6353f5bb140 (patch) | |
tree | dccdba46e7abf125e2f90e6dc08eca00ad9cb09b /src/codec/SkWbmpCodec.cpp | |
parent | fa3ed03720b5083afd3620c9239863f05f2eedbd (diff) |
use unique_ptr for codec factories
Will need guards for android (at least)
Bug: skia:
Change-Id: I2bb8e656997984489ef1f2e41cd3d301c4e7b947
Reviewed-on: https://skia-review.googlesource.com/26040
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/codec/SkWbmpCodec.cpp')
-rw-r--r-- | src/codec/SkWbmpCodec.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/codec/SkWbmpCodec.cpp b/src/codec/SkWbmpCodec.cpp index eea5e4babc..934d7d5b9a 100644 --- a/src/codec/SkWbmpCodec.cpp +++ b/src/codec/SkWbmpCodec.cpp @@ -95,10 +95,11 @@ bool SkWbmpCodec::readRow(uint8_t* row) { return this->stream()->read(row, fSrcRowBytes) == fSrcRowBytes; } -SkWbmpCodec::SkWbmpCodec(int width, int height, const SkEncodedInfo& info, SkStream* stream) +SkWbmpCodec::SkWbmpCodec(int width, int height, const SkEncodedInfo& info, + std::unique_ptr<SkStream> stream) // Wbmp does not need a colorXform, so choose an arbitrary srcFormat. : INHERITED(width, height, info, SkColorSpaceXform::ColorFormat(), - stream, SkColorSpace::MakeSRGB()) + std::move(stream), SkColorSpace::MakeSRGB()) , fSrcRowBytes(get_src_row_bytes(this->getInfo().width())) , fSwizzler(nullptr) {} @@ -145,10 +146,10 @@ bool SkWbmpCodec::IsWbmp(const void* buffer, size_t bytesRead) { return read_header(&stream, nullptr); } -SkCodec* SkWbmpCodec::NewFromStream(SkStream* stream, Result* result) { - std::unique_ptr<SkStream> streamDeleter(stream); +std::unique_ptr<SkCodec> SkWbmpCodec::MakeFromStream(std::unique_ptr<SkStream> stream, + Result* result) { SkISize size; - if (!read_header(stream, &size)) { + if (!read_header(stream.get(), &size)) { // This already succeeded in IsWbmp, so this stream was corrupted in/ // after rewind. *result = kCouldNotRewind; @@ -157,7 +158,8 @@ SkCodec* SkWbmpCodec::NewFromStream(SkStream* stream, Result* result) { *result = kSuccess; SkEncodedInfo info = SkEncodedInfo::Make(SkEncodedInfo::kGray_Color, SkEncodedInfo::kOpaque_Alpha, 1); - return new SkWbmpCodec(size.width(), size.height(), info, streamDeleter.release()); + return std::unique_ptr<SkCodec>(new SkWbmpCodec(size.width(), size.height(), info, + std::move(stream))); } int SkWbmpCodec::onGetScanlines(void* dst, int count, size_t dstRowBytes) { |