Index: src/gpu/GrAAConvexTessellator.cpp |
diff --git a/src/gpu/GrAAConvexTessellator.cpp b/src/gpu/GrAAConvexTessellator.cpp |
index 85ce7ba9ed6bc17681cbc791d7134210861e0539..e38ba3c3aed8c96a63ab83f70abb55c192e6ea79 100644 |
--- a/src/gpu/GrAAConvexTessellator.cpp |
+++ b/src/gpu/GrAAConvexTessellator.cpp |
@@ -681,7 +681,12 @@ bool GrAAConvexTessellator::createInsetRing(const Ring& lastRing, Ring* nextRing |
if (!dupPrevVsNext) { |
dst[cur] = fCandidateVerts.fuseWithPrior(lastRing.origEdgeID(cur)); |
} else { |
- dst[cur] = dst[cur-1] = fCandidateVerts.fuseWithBoth(); |
+ const int fused = fCandidateVerts.fuseWithBoth(); |
+ dst[cur] = fused; |
+ const int targetIdx = dst[cur - 1]; |
+ for (int i = cur - 1; i >= 0 && dst[i] == targetIdx; i--) { |
+ dst[i] = fused; |
+ } |
} |
} |