summaryrefslogtreecommitdiff
path: root/third_party/agg23/0000-bug-466.patch
blob: e761198a48b16d0f081602fe895d019ae1ccea77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
diff --git a/third_party/agg23/agg_math_stroke.h b/third_party/agg23/agg_math_stroke.h
index 6d7ba8a..2b06b1b 100644
--- a/third_party/agg23/agg_math_stroke.h
+++ b/third_party/agg23/agg_math_stroke.h
@@ -60,28 +60,30 @@ void stroke_calc_arc(VertexConsumer& out_vertices,
     }
     da = acos(width / (width + ((1.0f / 8) / approximation_scale))) * 2;
     out_vertices.add(coord_type(x + dx1, y + dy1));
-    if(!ccw) {
-        if(a1 > a2) {
-            a2 += 2 * FX_PI;
+    if (da > 0) {
+      if (!ccw) {
+        if (a1 > a2) {
+          a2 += 2 * FX_PI;
         }
         a2 -= da / 4;
         a1 += da;
-        while(a1 < a2) {
+        while (a1 < a2) {
           out_vertices.add(coord_type(x + (width * cos(a1)),
                                       y + (width * sin(a1))));
-            a1 += da;
+          a1 += da;
         }
-    } else {
-        if(a1 < a2) {
-            a2 -= 2 * FX_PI;
+      } else {
+        if (a1 < a2) {
+          a2 -= 2 * FX_PI;
         }
         a2 += da / 4;
         a1 -= da;
-        while(a1 > a2) {
+        while (a1 > a2) {
           out_vertices.add(coord_type(x + (width * cos(a1)),
                                       y + (width * sin(a1))));
-            a1 -= da;
+          a1 -= da;
         }
+      }
     }
     out_vertices.add(coord_type(x + dx2, y + dy2));
 }