aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/colorfilterimagefilter.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-01-21 06:44:08 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-21 06:44:09 -0800
commitdfe3e5052260e087d32326976183b58c36694ffd (patch)
tree0d3aae18829c4d3d9b4a5ecd597bd334ff4a9b7b /gm/colorfilterimagefilter.cpp
parentd4387ea99369ee1b89bbc9ffc0d8c203a8923515 (diff)
Make colorimagefilter GM not crash when resource path not specified
Diffstat (limited to 'gm/colorfilterimagefilter.cpp')
-rw-r--r--gm/colorfilterimagefilter.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/gm/colorfilterimagefilter.cpp b/gm/colorfilterimagefilter.cpp
index 49e568b130..daebe0d3df 100644
--- a/gm/colorfilterimagefilter.cpp
+++ b/gm/colorfilterimagefilter.cpp
@@ -67,13 +67,22 @@ static SkShader* sh_make_lineargradient1() {
static SkShader* sh_make_image() {
SkAutoTUnref<SkImage> image(GetResourceAsImage("mandrill_128.png"));
+ if (!image) {
+ return nullptr;
+ }
return image->newShader(SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);
}
static void sk_gm_get_shaders(SkTDArray<SkShader*>* array) {
- *array->append() = sh_make_lineargradient0();
- *array->append() = sh_make_lineargradient1();
- *array->append() = sh_make_image();
+ if (SkShader* shader = sh_make_lineargradient0()) {
+ *array->append() = shader;
+ }
+ if (SkShader* shader = sh_make_lineargradient1()) {
+ *array->append() = shader;
+ }
+ if (SkShader* shader = sh_make_image()) {
+ *array->append() = shader;
+ }
}
///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -198,7 +207,7 @@ DEF_SIMPLE_GM(colorfiltershader, canvas, 800, 800) {
canvas->translate(20, 20);
for (int y = 0; y < shaders.count(); ++y) {
SkShader* shader = shaders[y];
-
+
canvas->save();
for (int x = -1; x < filters.count(); ++x) {
SkColorFilter* filter = x >= 0 ? filters[x] : nullptr;