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;