aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2015-11-10 13:29:43 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-11-10 13:29:44 -0800
commitfbd87d611a16d6e1397226d1c8418c810c76b598 (patch)
tree186d8856b0ff52826f335adb3905899c08938acd
parentd472792a72c0c433a205d42a73e0b77d65f8d76f (diff)
Missing resources crash SampleFilterQuality.
The FilterQuality slide segfaults if resources cannot be loaded. This is particularly noticeable with an Android build, as by default resources are not available. Review URL: https://codereview.chromium.org/1422763004
-rw-r--r--samplecode/SampleFilterQuality.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/samplecode/SampleFilterQuality.cpp b/samplecode/SampleFilterQuality.cpp
index 1213b75b08..c37fcae457 100644
--- a/samplecode/SampleFilterQuality.cpp
+++ b/samplecode/SampleFilterQuality.cpp
@@ -41,9 +41,10 @@ static SkShader* make_shader(const SkRect& bounds) {
colors, nullptr, SK_ARRAY_COUNT(colors),
SkShader::kClamp_TileMode);
#else
- SkString resourcePath = GetResourcePath("mandrill_128.png");
- SkAutoTUnref<SkData> data(SkData::NewFromFileName(resourcePath.c_str()));
- SkAutoTUnref<SkImage> image(SkImage::NewFromEncoded(data));
+ SkAutoTUnref<SkImage> image(GetResourceAsImage("mandrill_128.png"));
+ if (nullptr == image) {
+ return nullptr;
+ }
return image->newShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode);
#endif
}
@@ -66,7 +67,7 @@ static SkImage* make_image() {
path.moveTo(0, 0); path.lineTo(N, 0); path.lineTo(0, N); path.close();
SkPaint paint;
- paint.setShader(make_shader(SkRect::MakeWH(N, N)))->unref();
+ SkSafeUnref(paint.setShader(make_shader(SkRect::MakeWH(N, N))));
canvas->drawPath(path, paint);
return surface->newImageSnapshot();