| Index: src/gpu/GrTessellator.cpp
|
| diff --git a/src/gpu/GrTessellator.cpp b/src/gpu/GrTessellator.cpp
|
| index 50d4af6148b30333789f68e663ee46c6aeac3651..ccffa9ffbeed21b29156e96c8d8e4cffe82e06c7 100644
|
| --- a/src/gpu/GrTessellator.cpp
|
| +++ b/src/gpu/GrTessellator.cpp
|
| @@ -360,16 +360,12 @@ struct Poly {
|
| MonotonePoly* fNext;
|
| void addEdge(Edge* edge) {
|
| if (fSide == kRight_Side) {
|
| - if (edge->fUsedInRightPoly) {
|
| - return;
|
| - }
|
| + SkASSERT(!edge->fUsedInRightPoly);
|
| list_insert<Edge, &Edge::fRightPolyPrev, &Edge::fRightPolyNext>(
|
| edge, fLastEdge, nullptr, &fFirstEdge, &fLastEdge);
|
| edge->fUsedInRightPoly = true;
|
| } else {
|
| - if (edge->fUsedInLeftPoly) {
|
| - return;
|
| - }
|
| + SkASSERT(!edge->fUsedInLeftPoly);
|
| list_insert<Edge, &Edge::fLeftPolyPrev, &Edge::fLeftPolyNext>(
|
| edge, fLastEdge, nullptr, &fFirstEdge, &fLastEdge);
|
| edge->fUsedInLeftPoly = true;
|
| @@ -423,6 +419,15 @@ struct Poly {
|
| e->fTop->fID, e->fBottom->fID, fID, side == kLeft_Side ? "left" : "right");
|
| Poly* partner = fPartner;
|
| Poly* poly = this;
|
| + if (side == kRight_Side) {
|
| + if (e->fUsedInRightPoly) {
|
| + return this;
|
| + }
|
| + } else {
|
| + if (e->fUsedInLeftPoly) {
|
| + return this;
|
| + }
|
| + }
|
| if (partner) {
|
| fPartner = partner->fPartner = nullptr;
|
| }
|
|
|