cairo/cairo-active_edges.patch

19 lines
566 B
Diff

https://bugs.freedesktop.org/show_bug.cgi?id=59098
--- cairo-1.14.2.orig/src/cairo-polygon-intersect.c
+++ cairo-1.14.2/src/cairo-polygon-intersect.c
@@ -1236,11 +1236,10 @@ active_edges (cairo_bo_edge_t *left,
edges_end (right, top, polygon);
winding[right->a_or_b] += right->edge.dir;
- if (is_zero (winding)) {
- if (right->next == NULL ||
- ! edges_colinear (right, right->next))
+ if (!right->next)
+ return;
+ if (is_zero (winding) && ! edges_colinear (right, right->next))
break;
- }
right = right->next;
} while (1);