diff options
author | 2015-04-09 09:20:19 -0700 | |
---|---|---|
committer | 2015-04-09 09:20:19 -0700 | |
commit | 2df6fd650cb12af8eeb7884b2819d2bf8ba7a5bf (patch) | |
tree | 13c6a5d75c9dec2c1a095208332b1c29b6f81983 /src/core/SkCanvas.cpp | |
parent | a67572ff91cc88ac8a9bb3d7f3d7c636c5ee02e1 (diff) |
Avoid sending empty bitmaps through proxy canvas
Some back ends may crash when asked to draw an empty bitmap, so we
filter it out here.
BUG=skia:3692
R=djsollen@google.com,reed@google.com
Review URL: https://codereview.chromium.org/1072033002
Diffstat (limited to 'src/core/SkCanvas.cpp')
-rw-r--r-- | src/core/SkCanvas.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 63a9241f60..7949cb3be1 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -1669,20 +1669,32 @@ void SkCanvas::drawImageRect(const SkImage* image, const SkRect* src, const SkRe } void SkCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar dx, SkScalar dy, const SkPaint* paint) { + if (bitmap.empty()) { + return; + } this->onDrawBitmap(bitmap, dx, dy, paint); } void SkCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, const SkPaint* paint, DrawBitmapRectFlags flags) { + if (bitmap.empty()) { + return; + } this->onDrawBitmapRect(bitmap, src, dst, paint, flags); } void SkCanvas::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkRect& dst, const SkPaint* paint) { + if (bitmap.empty()) { + return; + } this->onDrawBitmapNine(bitmap, center, dst, paint); } void SkCanvas::drawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint) { + if (bitmap.empty()) { + return; + } this->onDrawSprite(bitmap, left, top, paint); } |