xref: /aosp_15_r20/external/pdfium/third_party/agg23/0009-infinite-loop.patch (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1diff --git a/third_party/agg23/agg_math_stroke.h b/third_party/agg23/agg_math_stroke.h
2index 8515d2b16..70d1f2cf9 100644
3--- a/third_party/agg23/agg_math_stroke.h
4+++ b/third_party/agg23/agg_math_stroke.h
5@@ -173,6 +173,9 @@ void stroke_calc_cap(VertexConsumer& out_vertices,
6       float a1 = atan2(dy1, -dx1);
7       float a2 = a1 + FXSYS_PI;
8       float da = acos(width / (width + ((1.0f / 8) / approximation_scale))) * 2;
9+      if (da < stroke_theta) {
10+        da = stroke_theta;
11+      }
12       out_vertices.add(coord_type(v0.x - dx1, v0.y + dy1));
13       a1 += da;
14       a2 -= da / 4;
15@@ -180,8 +183,8 @@ void stroke_calc_cap(VertexConsumer& out_vertices,
16         out_vertices.add(
17             coord_type(v0.x + (width * cos(a1)), v0.y + (width * sin(a1))));
18         a1 += da;
19-        }
20-        out_vertices.add(coord_type(v0.x + dx1, v0.y - dy1));
21+      }
22+      out_vertices.add(coord_type(v0.x + dx1, v0.y - dy1));
23     }
24 }
25 template<class VertexConsumer>
26