diff options
Diffstat (limited to 'src/codec')
-rw-r--r-- | src/codec/SkAndroidCodec.cpp | 2 | ||||
-rw-r--r-- | src/codec/SkCodec.cpp | 2 | ||||
-rw-r--r-- | src/codec/SkCodecImageGenerator.cpp | 6 | ||||
-rw-r--r-- | src/codec/SkCodecImageGenerator.h | 11 |
4 files changed, 10 insertions, 11 deletions
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp index db36564232..23242433bf 100644 --- a/src/codec/SkAndroidCodec.cpp +++ b/src/codec/SkAndroidCodec.cpp @@ -55,7 +55,7 @@ SkAndroidCodec* SkAndroidCodec::NewFromStream(SkStream* stream, SkPngChunkReader } } -SkAndroidCodec* SkAndroidCodec::NewFromData(SkData* data, SkPngChunkReader* chunkReader) { +SkAndroidCodec* SkAndroidCodec::NewFromData(sk_sp<SkData> data, SkPngChunkReader* chunkReader) { if (!data) { return nullptr; } diff --git a/src/codec/SkCodec.cpp b/src/codec/SkCodec.cpp index 2372f4ce5b..b076954adc 100644 --- a/src/codec/SkCodec.cpp +++ b/src/codec/SkCodec.cpp @@ -107,7 +107,7 @@ SkCodec* SkCodec::NewFromStream(SkStream* stream, return nullptr; } -SkCodec* SkCodec::NewFromData(SkData* data, SkPngChunkReader* reader) { +SkCodec* SkCodec::NewFromData(sk_sp<SkData> data, SkPngChunkReader* reader) { if (!data) { return nullptr; } diff --git a/src/codec/SkCodecImageGenerator.cpp b/src/codec/SkCodecImageGenerator.cpp index 1bae1df856..8108f0de44 100644 --- a/src/codec/SkCodecImageGenerator.cpp +++ b/src/codec/SkCodecImageGenerator.cpp @@ -7,7 +7,7 @@ #include "SkCodecImageGenerator.h" -SkImageGenerator* SkCodecImageGenerator::NewFromEncodedCodec(SkData* data) { +SkImageGenerator* SkCodecImageGenerator::NewFromEncodedCodec(sk_sp<SkData> data) { SkCodec* codec = SkCodec::NewFromData(data); if (nullptr == codec) { return nullptr; @@ -24,10 +24,10 @@ static SkImageInfo make_premul(const SkImageInfo& info) { return info; } -SkCodecImageGenerator::SkCodecImageGenerator(SkCodec* codec, SkData* data) +SkCodecImageGenerator::SkCodecImageGenerator(SkCodec* codec, sk_sp<SkData> data) : INHERITED(make_premul(codec->getInfo())) , fCodec(codec) - , fData(SkRef(data)) + , fData(std::move(data)) {} SkData* SkCodecImageGenerator::onRefEncodedData(SK_REFENCODEDDATA_CTXPARAM) { diff --git a/src/codec/SkCodecImageGenerator.h b/src/codec/SkCodecImageGenerator.h index b12564329d..22a39aaaa9 100644 --- a/src/codec/SkCodecImageGenerator.h +++ b/src/codec/SkCodecImageGenerator.h @@ -14,11 +14,11 @@ public: /* * If this data represents an encoded image that we know how to decode, * return an SkCodecImageGenerator. Otherwise return nullptr. - * - * Refs the data if an image generator can be returned. Otherwise does - * not affect the data. */ - static SkImageGenerator* NewFromEncodedCodec(SkData* data); + static SkImageGenerator* NewFromEncodedCodec(sk_sp<SkData>); + static SkImageGenerator* NewFromEncodedCodec(SkData* data) { + return NewFromEncodedCodec(sk_ref_sp(data)); + } protected: SkData* onRefEncodedData(SK_REFENCODEDDATA_CTXPARAM) override; @@ -33,9 +33,8 @@ protected: private: /* * Takes ownership of codec - * Refs the data */ - SkCodecImageGenerator(SkCodec* codec, SkData* data); + SkCodecImageGenerator(SkCodec* codec, sk_sp<SkData>); SkAutoTDelete<SkCodec> fCodec; sk_sp<SkData> fData; |