|  | 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)); | 
|  | } |