diff options
author | bsalomon <bsalomon@google.com> | 2016-01-21 06:44:08 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-21 06:44:09 -0800 |
commit | dfe3e5052260e087d32326976183b58c36694ffd (patch) | |
tree | 0d3aae18829c4d3d9b4a5ecd597bd334ff4a9b7b /gm/colorfilterimagefilter.cpp | |
parent | d4387ea99369ee1b89bbc9ffc0d8c203a8923515 (diff) |
Make colorimagefilter GM not crash when resource path not specified
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1619723002
BUG=skia:
Review URL: https://codereview.chromium.org/1619723002
Diffstat (limited to 'gm/colorfilterimagefilter.cpp')
-rw-r--r-- | gm/colorfilterimagefilter.cpp | 17 |
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; |