19 lines
566 B
Diff
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);
|