handle no shader from image in drawAtlas
authorreed <reed@google.com>
Tue, 18 Aug 2015 19:50:24 +0000 (12:50 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 18 Aug 2015 19:50:24 +0000 (12:50 -0700)
BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1298233003

src/core/SkDevice.cpp

index dd55aad0ce42379d502fa5f6b6e573114ad983d8..b2cc0ddbc3551cafa4fa1f95bcc4559f97bbcc52 100644 (file)
@@ -198,8 +198,14 @@ void SkBaseDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkR
         localM.preTranslate(-tex[i].left(), -tex[i].top());
 
         SkPaint pnt(paint);
-        pnt.setShader(atlas->newShader(SkShader::kClamp_TileMode, SkShader::kClamp_TileMode,
-                                       &localM))->unref();
+        SkAutoTUnref<SkShader> shader(atlas->newShader(SkShader::kClamp_TileMode,
+                                                       SkShader::kClamp_TileMode,
+                                                       &localM));
+        if (!shader) {
+            break;
+        }
+        pnt.setShader(shader);
+
         if (colors && colors[i] != SK_ColorWHITE) {
             SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(colors[i], mode));
             pnt.setColorFilter(cf);