diff options
author | Werner Lemberg <wl@gnu.org> | 2013-02-05 19:23:16 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2013-02-05 19:23:16 +0100 |
commit | 00dfa3304e7275c1cba822ebd9e760b63d4601fd (patch) | |
tree | d79e337287fe1b59d905a26147644cfb0c0aeb64 | |
parent | 0eb6316fde158730f6a50670435ad68d3e00286c (diff) | |
download | freetype2-00dfa3304e7275c1cba822ebd9e760b63d4601fd.tar.gz |
[truetype] A better fix for Savannah bug #38211.
* src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to
MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock).
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | src/truetype/ttinterp.c | 16 |
2 files changed, 18 insertions, 5 deletions
@@ -1,3 +1,10 @@ +2013-02-05 Werner Lemberg <wl@gnu.org> + + [truetype] A better fix for Savannah bug #38211. + + * src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to + MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock). + 2013-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> [pcf] Streamline parsing of PCF encoding table. diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c index 4e4a5bfbe..39b804c2a 100644 --- a/src/truetype/ttinterp.c +++ b/src/truetype/ttinterp.c @@ -6979,11 +6979,17 @@ new_dist = FT_MulDiv( org_dist, cur_range, old_range ); else { - /* use the middle position */ - new_dist = cur_dist - - CUR_fast_dualproj( &CUR.zp2.cur[point] ) + - ( CUR_fast_dualproj( &CUR.zp1.cur[CUR.GS.rp1] ) + - CUR_fast_dualproj( &CUR.zp1.cur[CUR.GS.rp2] ) ) / 2; + /* This is the same as what MS does for the invalid case: */ + /* */ + /* delta = (Original_Pt - Original_RP1) - */ + /* (Current_Pt - Current_RP1) */ + /* */ + /* In FreeType speak: */ + /* */ + /* new_dist = cur_dist - */ + /* org_dist - cur_dist; */ + + new_dist = -org_dist; } } else |