SkImage::onRefEncoded to return sk_sp.
This changes SkImage::onRefEncoded and downstack calls to return sk_sp.
All of the values returned are already sk_sp, so this just updates the
API. This change is currently behind the new flag
SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE so that Chromium can be updated.
Change-Id: Ic53a88ae23fa8b3b41b84c4abdc4b74e9879da38
Reviewed-on: https://skia-review.googlesource.com/128311
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/src/codec/SkCodecImageGenerator.cpp b/src/codec/SkCodecImageGenerator.cpp
index 3f03b2f..6570261 100644
--- a/src/codec/SkCodecImageGenerator.cpp
+++ b/src/codec/SkCodecImageGenerator.cpp
@@ -35,9 +35,15 @@
, fData(std::move(data))
{}
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* SkCodecImageGenerator::onRefEncodedData() {
return SkRef(fData.get());
}
+#else
+sk_sp<SkData> SkCodecImageGenerator::onRefEncodedData() {
+ return fData;
+}
+#endif
bool SkCodecImageGenerator::onGetPixels(const SkImageInfo& requestInfo, void* requestPixels,
size_t requestRowBytes, const Options& opts) {
diff --git a/src/codec/SkCodecImageGenerator.h b/src/codec/SkCodecImageGenerator.h
index 1b2cbc2..e608d8e 100644
--- a/src/codec/SkCodecImageGenerator.h
+++ b/src/codec/SkCodecImageGenerator.h
@@ -21,7 +21,11 @@
static std::unique_ptr<SkImageGenerator> MakeFromEncodedCodec(sk_sp<SkData>);
protected:
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* onRefEncodedData() override;
+#else
+ sk_sp<SkData> onRefEncodedData() override;
+#endif
bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options& opts)
override;
diff --git a/src/core/SkStreamPriv.h b/src/core/SkStreamPriv.h
index ac822c1..6bec5f8 100644
--- a/src/core/SkStreamPriv.h
+++ b/src/core/SkStreamPriv.h
@@ -21,9 +21,7 @@
* but is not at the beginning, this call will fail (return NULL).
*
* @param stream SkStream to be copied into data.
- * @return SkData* The resulting SkData after the copy. This data
- * will have a ref count of one upon return and belongs to the
- * caller. Returns nullptr on failure.
+ * @return The resulting SkData after the copy, nullptr on failure.
*/
sk_sp<SkData> SkCopyStreamToData(SkStream* stream);
diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h
index c74a7b9..ba89585 100644
--- a/src/image/SkImage_Base.h
+++ b/src/image/SkImage_Base.h
@@ -76,7 +76,11 @@
virtual sk_sp<SkImage> onMakeSubset(const SkIRect&) const = 0;
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
virtual SkData* onRefEncoded() const { return nullptr; }
+#else
+ virtual sk_sp<SkData> onRefEncoded() const { return nullptr; }
+#endif
virtual bool onAsLegacyBitmap(SkBitmap*) const;
diff --git a/src/image/SkImage_Lazy.cpp b/src/image/SkImage_Lazy.cpp
index 9ca9d0d..c627f22 100644
--- a/src/image/SkImage_Lazy.cpp
+++ b/src/image/SkImage_Lazy.cpp
@@ -85,7 +85,11 @@
sk_sp<SkColorSpace>*,
SkScalar scaleAdjust[2]) const override;
#endif
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* onRefEncoded() const override;
+#else
+ sk_sp<SkData> onRefEncoded() const override;
+#endif
sk_sp<SkImage> onMakeSubset(const SkIRect&) const override;
bool getROPixels(SkBitmap*, SkColorSpace* dstColorSpace, CachingHint) const override;
bool onIsLazyGenerated() const override { return true; }
@@ -568,10 +572,17 @@
return false;
}
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* SkImage_Lazy::onRefEncoded() const {
ScopedGenerator generator(fSharedGenerator);
return generator->refEncodedData();
}
+#else
+sk_sp<SkData> SkImage_Lazy::onRefEncoded() const {
+ ScopedGenerator generator(fSharedGenerator);
+ return generator->refEncodedData();
+}
+#endif
bool SkImage_Lazy::getROPixels(SkBitmap* bitmap, SkColorSpace* dstColorSpace,
CachingHint chint) const {
diff --git a/src/ports/SkImageGeneratorCG.cpp b/src/ports/SkImageGeneratorCG.cpp
index 2d2c3d3..c3d2f77 100644
--- a/src/ports/SkImageGeneratorCG.cpp
+++ b/src/ports/SkImageGeneratorCG.cpp
@@ -97,9 +97,15 @@
, fOrigin(origin)
{}
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* SkImageGeneratorCG::onRefEncodedData() {
return SkRef(fData.get());
}
+#else
+sk_sp<SkData> SkImageGeneratorCG::onRefEncodedData() {
+ return fData;
+}
+#endif
bool SkImageGeneratorCG::onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
const Options&) {
diff --git a/src/ports/SkImageGeneratorCG.h b/src/ports/SkImageGeneratorCG.h
index 58aac4f..4f5a3a9 100644
--- a/src/ports/SkImageGeneratorCG.h
+++ b/src/ports/SkImageGeneratorCG.h
@@ -27,7 +27,11 @@
static std::unique_ptr<SkImageGenerator> MakeFromEncodedCG(sk_sp<SkData>);
protected:
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* onRefEncodedData() override;
+#else
+ sk_sp<SkData> onRefEncodedData() override;
+#endif
bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&)
override;
diff --git a/src/ports/SkImageGeneratorWIC.cpp b/src/ports/SkImageGeneratorWIC.cpp
index e69b2ee..19d4080 100644
--- a/src/ports/SkImageGeneratorWIC.cpp
+++ b/src/ports/SkImageGeneratorWIC.cpp
@@ -132,9 +132,15 @@
, fData(SkRef(data))
{}
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* SkImageGeneratorWIC::onRefEncodedData() {
return SkRef(fData.get());
}
+#else
+sk_sp<SkData> SkImageGeneratorWIC::onRefEncodedData() {
+ return fData;
+}
+#endif
bool SkImageGeneratorWIC::onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
const Options&) {
diff --git a/src/ports/SkImageGeneratorWIC.h b/src/ports/SkImageGeneratorWIC.h
index 4770ee2..c0ace67 100644
--- a/src/ports/SkImageGeneratorWIC.h
+++ b/src/ports/SkImageGeneratorWIC.h
@@ -39,7 +39,11 @@
static SkImageGenerator* NewFromEncodedWIC(SkData* data);
protected:
+#if SK_IGNORE_SKIMAGE_ONREFENCODED_CHANGE
SkData* onRefEncodedData() override;
+#else
+ sk_sp<SkData> onRefEncodedData() override;
+#endif
bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&)
override;