fix hanging fuzz in AsWinding

R=kjlubick@google.com

Bug: skia:
Change-Id: Ib34e3d4716887b63fe465de3f20c27e74ec46467
Reviewed-on: https://skia-review.googlesource.com/c/161543
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
This commit is contained in:
Cary Clark 2018-10-11 15:14:23 -04:00 committed by Skia Commit-Bot
parent 38a62bdf64
commit d18a95a7d1

View File

@ -80,10 +80,7 @@ static int contains_edge(SkPoint pts[4], SkPath::Verb verb, SkScalar weight, con
// TODO : other cases need discriminating. need op angle code to figure it out // TODO : other cases need discriminating. need op angle code to figure it out
// example: edge ends 45 degree diagonal going up. If pts is to the left of edge, keep. // example: edge ends 45 degree diagonal going up. If pts is to the left of edge, keep.
// if pts is to the right of edge, discard. With code as is, can't distiguish the two cases. // if pts is to the right of edge, discard. With code as is, can't distiguish the two cases.
if (intersectX < edge.fX) { tVals[index] = tVals[--count];
tVals[index] = tVals[--count];
continue;
}
} }
// use first derivative to determine if intersection is contributing +1 or -1 to winding // use first derivative to determine if intersection is contributing +1 or -1 to winding
for (int index = 0; index < count; ++index) { for (int index = 0; index < count; ++index) {
@ -252,7 +249,9 @@ public:
continue; continue;
} }
// incomplete: must sort edges to find the one most to left // incomplete: must sort edges to find the one most to left
SkDebugf("incomplete\n"); // File a bug if this code path is triggered and AsWinding was
// expected to succeed.
SkDEBUGF("incomplete\n");
// TODO: add edges as opangle and sort // TODO: add edges as opangle and sort
} }
contour.fMinXY = minXY; contour.fMinXY = minXY;