FuzzCanvas: fix drawVertices BUG=skia:6314
authorHal Canary <halcanary@google.com>
Thu, 2 Mar 2017 20:27:23 +0000 (15:27 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Thu, 2 Mar 2017 21:03:35 +0000 (21:03 +0000)
Change-Id: I5f55a0fc03d4fe780b35529df9eeb385639501f2
Reviewed-on: https://skia-review.googlesource.com/9173
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

fuzz/FuzzCanvas.cpp

index eaa1ecb..0dec81e 100644 (file)
@@ -1097,7 +1097,6 @@ void fuzz_canvas(Fuzz* fuzz, SkCanvas* canvas, int depth = 4) {
                 SkPoint vertices[kMaxCount];
                 SkPoint texs[kMaxCount];
                 SkColor colors[kMaxCount];
-                uint16_t indices[kMaxCount];
                 fuzz->nextRange(&vertexCount, 3, kMaxCount);
                 fuzz->nextN(vertices, vertexCount);
                 bool useTexs, useColors;
@@ -1109,8 +1108,12 @@ void fuzz_canvas(Fuzz* fuzz, SkCanvas* canvas, int depth = 4) {
                     fuzz->nextN(colors, vertexCount);
                 }
                 int indexCount = 0;
+                uint16_t indices[kMaxCount * 2];
                 if (make_bool(fuzz)) {
-                    fuzz->nextRange(&indexCount, 3, kMaxCount);
+                    fuzz->nextRange(&indexCount, vertexCount, vertexCount + kMaxCount);
+                    for (int i = 0; i < indexCount; ++i) {
+                        fuzz->nextRange(&indices[i], 0, vertexCount - 1);
+                    }
                 }
                 canvas->drawVertices(vertexMode, vertexCount, vertices,
                                      useTexs ? texs : nullptr,