Initialize bounds even if the text length is zero.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7964 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 9510e75..07d1c33 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -1071,6 +1071,9 @@
                 bounds->fBottom = SkScalarMul(bounds->fBottom, scale);
             }
         }
+    } else if (bounds) {
+        // ensure that even if we don't measure_text we still update the bounds
+        bounds->setEmpty();
     }
     return width;
 }
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index ed79076..b08f22c 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -97,12 +97,27 @@
     REPORTER_ASSERT(reporter, maxR.contains(strokeR));
 }
 
+// found and fixed for android: not initializing rect for string's of length 0
+static void regression_measureText(skiatest::Reporter* reporter) {
+
+    SkPaint paint;
+    paint.setTextSize(SkFloatToScalar(12.0f));
+
+    SkRect r;
+    r.setLTRB(SK_ScalarNaN, SK_ScalarNaN, SK_ScalarNaN, SK_ScalarNaN);
+
+    // test that the rect was reset
+    paint.measureText("", 0, &r, SkFloatToScalar(1.0f));
+    REPORTER_ASSERT(reporter, r.isEmpty());
+}
+
 static void TestPaint(skiatest::Reporter* reporter) {
     // TODO add general paint tests
     test_copy(reporter);
 
     // regression tests
     regression_cubic(reporter);
+    regression_measureText(reporter);
 }
 
 #include "TestClassDef.h"