diff options
Diffstat (limited to 'src/codec/SkAndroidCodec.cpp')
-rw-r--r-- | src/codec/SkAndroidCodec.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp index 0245ea2f1e..3a23e06c8d 100644 --- a/src/codec/SkAndroidCodec.cpp +++ b/src/codec/SkAndroidCodec.cpp @@ -8,6 +8,7 @@ #include "SkAndroidCodec.h" #include "SkCodec.h" #include "SkCodecPriv.h" +#include "SkMakeUnique.h" #include "SkRawAdapterCodec.h" #include "SkSampledCodec.h" #include "SkWebpAdapterCodec.h" @@ -65,8 +66,8 @@ SkAndroidCodec::SkAndroidCodec(SkCodec* codec) , fCodec(codec) {} -SkAndroidCodec* SkAndroidCodec::NewFromStream(SkStream* stream, SkPngChunkReader* chunkReader) { - std::unique_ptr<SkCodec> codec(SkCodec::NewFromStream(stream, nullptr, chunkReader)); +std::unique_ptr<SkAndroidCodec> SkAndroidCodec::MakeFromStream(std::unique_ptr<SkStream> stream, SkPngChunkReader* chunkReader) { + auto codec = SkCodec::MakeFromStream(std::move(stream), nullptr, chunkReader); if (nullptr == codec) { return nullptr; } @@ -82,26 +83,27 @@ SkAndroidCodec* SkAndroidCodec::NewFromStream(SkStream* stream, SkPngChunkReader case SkEncodedImageFormat::kGIF: case SkEncodedImageFormat::kBMP: case SkEncodedImageFormat::kWBMP: - return new SkSampledCodec(codec.release()); + return skstd::make_unique<SkSampledCodec>(codec.release()); #ifdef SK_HAS_WEBP_LIBRARY case SkEncodedImageFormat::kWEBP: - return new SkWebpAdapterCodec((SkWebpCodec*) codec.release()); + return skstd::make_unique<SkWebpAdapterCodec>((SkWebpCodec*) codec.release()); #endif #ifdef SK_CODEC_DECODES_RAW case SkEncodedImageFormat::kDNG: - return new SkRawAdapterCodec((SkRawCodec*)codec.release()); + return skstd::make_unique<SkRawAdapterCodec>((SkRawCodec*)codec.release()); #endif default: return nullptr; } } -SkAndroidCodec* SkAndroidCodec::NewFromData(sk_sp<SkData> data, SkPngChunkReader* chunkReader) { +std::unique_ptr<SkAndroidCodec> SkAndroidCodec::MakeFromData(sk_sp<SkData> data, + SkPngChunkReader* chunkReader) { if (!data) { return nullptr; } - return NewFromStream(new SkMemoryStream(data), chunkReader); + return MakeFromStream(skstd::make_unique<SkMemoryStream>(std::move(data)), chunkReader); } SkColorType SkAndroidCodec::computeOutputColorType(SkColorType requestedColorType) { |