From ae248034106b600e8e3fa9ccc17f63db44b04db3 Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Sat, 2 Jun 2018 21:42:44 -0400 Subject: [PATCH] [smooth] Attempt to mitigate bug #54019. The robust rendering of estra large glyphs came with unbearable cost. The old way of bisecting should fail but fail faster. * src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting in y-direction. --- ChangeLog | 10 ++++++++++ src/smooth/ftgrays.c | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b7f2e5953..fc0eec981 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2018-06-02 Alexei Podtelezhnikov + + [smooth] Attempt to mitigate bug #54019. + + The robust rendering of estra large glyphs came with unbearable cost. + The old way of bisecting should fail but fail faster. + + * src/smooth/ftgrays.c (gray_convert_glyph): Switch back to bisecting + in y-direction. + 2018-06-02 Werner Lemberg * src/truetype/ttinterp.c (Ins_MIRP): Use SUB_LONG; avoid FT_ABS. diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index 8ba13195c..afc019842 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -1767,8 +1767,8 @@ typedef ptrdiff_t FT_PtrDist; ras.max_ey = FT_MIN( y, yMax ); band = bands; - band[1] = xMin; - band[0] = xMax; + band[1] = ras.min_ey; + band[0] = ras.max_ey; do { @@ -1780,8 +1780,8 @@ typedef ptrdiff_t FT_PtrDist; ras.num_cells = 0; ras.invalid = 1; - ras.min_ex = band[1]; - ras.max_ex = band[0]; + ras.min_ey = band[1]; + ras.max_ey = band[0]; error = gray_convert_glyph_inner( RAS_VAR );