aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/image.cpp10
-rw-r--r--src/image/SkImage.cpp3
2 files changed, 10 insertions, 3 deletions
diff --git a/gm/image.cpp b/gm/image.cpp
index 2592131334..1e3edc3292 100644
--- a/gm/image.cpp
+++ b/gm/image.cpp
@@ -399,8 +399,11 @@ DEF_SIMPLE_GM(scalepixels_unpremul, canvas, 1080, 280) {
static sk_sp<SkImage> make_lazy_image(SkSurface* surf) {
surf->getCanvas()->drawCircle(100, 100, 100, SkPaint());
- auto data = surf->makeImageSnapshot()->encodeToData();
- return SkImage::MakeFromEncoded(data);
+ sk_sp<SkData> data = surf->makeImageSnapshot()->encodeToData();
+ if (!data) {
+ return nullptr;
+ }
+ return SkImage::MakeFromEncoded(std::move(data));
}
#include "SkWriteBuffer.h"
@@ -420,6 +423,9 @@ DEF_SIMPLE_GM(image_subset, canvas, 440, 220) {
SkImageInfo info = SkImageInfo::MakeN32Premul(200, 200, nullptr);
auto surf = sk_tool_utils::makeSurface(canvas, info, nullptr);
auto img = make_lazy_image(surf.get());
+ if (!img) {
+ return;
+ }
canvas->drawImage(img, 10, 10, nullptr);
auto sub = img->makeSubset({100, 100, 200, 200});
diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp
index 53add0e9d3..da2780b03d 100644
--- a/src/image/SkImage.cpp
+++ b/src/image/SkImage.cpp
@@ -127,7 +127,8 @@ sk_sp<SkImage> SkImage::MakeFromEncoded(sk_sp<SkData> encoded, const SkIRect* su
if (nullptr == encoded || 0 == encoded->size()) {
return nullptr;
}
- return SkImage::MakeFromGenerator(SkImageGenerator::MakeFromEncoded(encoded), subset);
+ return SkImage::MakeFromGenerator(SkImageGenerator::MakeFromEncoded(std::move(encoded)),
+ subset);
}
///////////////////////////////////////////////////////////////////////////////////////////////////