aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/codec
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec')
-rw-r--r--src/codec/SkAndroidCodec.cpp2
-rw-r--r--src/codec/SkCodec.cpp2
-rw-r--r--src/codec/SkCodecImageGenerator.cpp6
-rw-r--r--src/codec/SkCodecImageGenerator.h11
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;