From 6b832c872d9726fd3f0979b3f95c7fa618fb50f2 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Tue, 10 Mar 2015 23:25:49 -0400 Subject: [PATCH] Fix Savannah bug #44412 (part 1). * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns. --- ChangeLog | 6 ++++++ src/base/ftstroke.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c9d5ece3f..6b7b963fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-03-10 Alexei Podtelezhnikov + + Fix Savannah bug #44412 (part 1). + + * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns. + 2015-03-10 Werner Lemberg [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'. diff --git a/src/base/ftstroke.c b/src/base/ftstroke.c index 434d0d8c0..842ee30b3 100644 --- a/src/base/ftstroke.c +++ b/src/base/ftstroke.c @@ -999,7 +999,9 @@ /* Only intersect borders if between two lineto's and both */ /* lines are long enough (line_length is zero for curves). */ - if ( !border->movable || line_length == 0 ) + /* Also avoid U-turns of nearly 180 degree. */ + if ( !border->movable || line_length == 0 || + theta > 0x59C000 || theta < -0x59C000 ) intersect = FALSE; else {