aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/stroketext.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-14 14:02:58 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-14 14:02:58 +0000
commit0d30c51c6cf45b3a08a3000b6d348c16bdec7f05 (patch)
tree186791fec99f41771f4e23f73562a6b18ae30d71 /gm/stroketext.cpp
parent13874c1ad8ddbc93b89d30139586e41fb6b17433 (diff)
check for null-device pixels in onWritePixels, so we don't crash
Diffstat (limited to 'gm/stroketext.cpp')
-rw-r--r--gm/stroketext.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index 1791fea528..b9d56f10e4 100644
--- a/gm/stroketext.cpp
+++ b/gm/stroketext.cpp
@@ -8,6 +8,21 @@
#include "gm.h"
#include "SkCanvas.h"
+static void test_nulldev(SkCanvas* canvas) {
+ SkBitmap bm;
+ bm.setConfig(SkBitmap::kARGB_8888_Config, 30, 30);
+ // notice: no pixels mom! be sure we don't crash
+ // https://code.google.com/p/chromium/issues/detail?id=352616
+ SkCanvas c(bm);
+
+ SkBitmap src;
+ src.allocN32Pixels(10, 10);
+ src.eraseColor(SK_ColorRED);
+
+ // ensure we don't crash
+ c.writePixels(src, 0, 0);
+}
+
static void draw_text_stroked(SkCanvas* canvas, const SkPaint& paint) {
SkPaint p(paint);
SkPoint loc = { 20, 450 };
@@ -44,6 +59,7 @@ protected:
}
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
+ if (true) { test_nulldev(canvas); }
SkPaint paint;
paint.setAntiAlias(true);