check for null-device pixels in onWritePixels, so we don't crash

https://code.google.com/p/chromium/issues/detail?id=352616

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13802 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/stroketext.cpp b/gm/stroketext.cpp
index 1791fea..b9d56f1 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 @@
     }
 
     virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
+        if (true) { test_nulldev(canvas); }
         SkPaint paint;
         paint.setAntiAlias(true);