diff options
-rwxr-xr-x | src/utils/SkOffsetPolygon.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/utils/SkOffsetPolygon.cpp b/src/utils/SkOffsetPolygon.cpp index b335a25f0a..81b692f1bf 100755 --- a/src/utils/SkOffsetPolygon.cpp +++ b/src/utils/SkOffsetPolygon.cpp @@ -308,7 +308,13 @@ bool SkInsetConvexPolygon(const SkPoint* inputPolygonVerts, int inputPolygonSize int prevIndex = inputPolygonSize - 1; int currIndex = 0; int insetVertexCount = inputPolygonSize; + int iterations = 0; while (prevIndex != currIndex) { + ++iterations; + if (iterations > inputPolygonSize*inputPolygonSize) { + return false; + } + if (!edgeData[prevIndex].fValid) { prevIndex = (prevIndex + inputPolygonSize - 1) % inputPolygonSize; continue; |