[stroker] Minor clean-up. * src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last line length. (FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
diff --git a/ChangeLog b/ChangeLog
index 758bec7..1668f7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2021-01-27 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [stroker] Minor clean-up.
+
+ * src/base/ftstroke.c (FT_Stroker_{ConicTo,CubicTo}): Reset the last
+ line length.
+ (FT_Stroker_EndSubPath): Call `ft_stroker_process_corner'.
+
2021-01-27 Vincent Torri <vincent.torri@gmail.com>
* builds/windows/ftsystem.c: Add shared memory support on Windows.
diff --git a/src/base/ftstroke.c b/src/base/ftstroke.c
index e209639..d0ad833 100644
--- a/src/base/ftstroke.c
+++ b/src/base/ftstroke.c
@@ -1528,7 +1528,8 @@
stroker->angle_in = angle_out;
}
- stroker->center = *to;
+ stroker->center = *to;
+ stroker->line_length = 0;
Exit:
return error;
@@ -1744,7 +1745,8 @@
stroker->angle_in = angle_out;
}
- stroker->center = *to;
+ stroker->center = *to;
+ stroker->line_length = 0;
Exit:
return error;
@@ -1897,10 +1899,6 @@
}
else
{
- FT_Angle turn;
- FT_Int inside_side;
-
-
/* close the path if needed */
if ( stroker->center.x != stroker->subpath_start.x ||
stroker->center.y != stroker->subpath_start.y )
@@ -1912,29 +1910,11 @@
/* process the corner */
stroker->angle_out = stroker->subpath_angle;
- turn = FT_Angle_Diff( stroker->angle_in,
- stroker->angle_out );
-
- /* no specific corner processing is required if the turn is 0 */
- if ( turn != 0 )
- {
- /* when we turn to the right, the inside side is 0 */
- /* otherwise, the inside side is 1 */
- inside_side = ( turn < 0 );
-
- error = ft_stroker_inside( stroker,
- inside_side,
- stroker->subpath_line_length );
- if ( error )
- goto Exit;
- /* process the outside side */
- error = ft_stroker_outside( stroker,
- !inside_side,
- stroker->subpath_line_length );
- if ( error )
- goto Exit;
- }
+ error = ft_stroker_process_corner( stroker,
+ stroker->subpath_line_length );
+ if ( error )
+ goto Exit;
/* then end our two subpaths */
ft_stroke_border_close( stroker->borders + 0, FALSE );