Make SkPath::conservativelyContainsRect not assert on paths that begin with repeated moveTos

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://chromiumcodereview.appspot.com/21565002

git-svn-id: http://skia.googlecode.com/svn/trunk@10484 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index b285184..d1e4d79 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -301,29 +301,35 @@
     SkPath::Verb verb;
     SkPoint pts[4];
     SkDEBUGCODE(int moveCnt = 0;)
+    SkDEBUGCODE(int segmentCount = 0;)
+    SkDEBUGCODE(int closeCount = 0;)
 
     while ((verb = iter.next(pts)) != kDone_Verb) {
         int nextPt = -1;
         switch (verb) {
             case kMove_Verb:
-                SkASSERT(!moveCnt);
+                SkASSERT(!segmentCount && !closeCount);
                 SkDEBUGCODE(++moveCnt);
                 firstPt = prevPt = pts[0];
                 break;
             case kLine_Verb:
                 nextPt = 1;
-                SkASSERT(moveCnt);
+                SkASSERT(moveCnt && !closeCount);
+                SkDEBUGCODE(++segmentCount);
                 break;
             case kQuad_Verb:
             case kConic_Verb:
-                SkASSERT(moveCnt);
+                SkASSERT(moveCnt && !closeCount);
+                SkDEBUGCODE(++segmentCount);
                 nextPt = 2;
                 break;
             case kCubic_Verb:
-                SkASSERT(moveCnt);
+                SkASSERT(moveCnt && !closeCount);
+                SkDEBUGCODE(++segmentCount);
                 nextPt = 3;
                 break;
             case kClose_Verb:
+                SkDEBUGCODE(++closeCount;)
                 break;
             default:
                 SkDEBUGFAIL("unknown verb");