Fix a serious bug in the TT hinter.
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift points vertically before hinting. * docs/CHANGES: Updated. * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, FTC_GCache_Lookup): A new try to fix comparison with zero.
This commit is contained in:
parent
bbdee28f75
commit
b9ff415dfb
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2004-11-19 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
Fix a serious bug in the TT hinter.
|
||||
|
||||
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift
|
||||
points vertically before hinting.
|
||||
|
||||
* docs/CHANGES: Updated.
|
||||
|
||||
* src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
|
||||
FTC_GCache_Lookup): A new try to fix comparison with zero.
|
||||
|
||||
2004-11-16 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is
|
||||
|
@ -13,6 +13,8 @@ LATEST CHANGES BETWEEN 2.1.10 and 2.1.9
|
||||
NPUSHW instruction wasn't skipped correctly in IF clauses. Some
|
||||
fonts like `Helvetica 75 Bold' failed.
|
||||
|
||||
- Another bug in handling TrueType hints caused many distortions.
|
||||
|
||||
|
||||
II. IMPORTANT CHANGES
|
||||
|
||||
|
4
src/cache/ftcglyph.c
vendored
4
src/cache/ftcglyph.c
vendored
@ -47,7 +47,7 @@
|
||||
|
||||
|
||||
gnode->family = NULL;
|
||||
if ( family && --(FT_Long)(family->num_nodes) <= 0 )
|
||||
if ( family && --family->num_nodes == 0 )
|
||||
FTC_FAMILY_FREE( family, cache );
|
||||
}
|
||||
|
||||
@ -189,7 +189,7 @@
|
||||
|
||||
error = FTC_Cache_Lookup( FTC_CACHE( cache ), hash, query, anode );
|
||||
|
||||
if ( --(FT_Long)(family->num_nodes) <= 0 )
|
||||
if ( --family->num_nodes == 0 )
|
||||
FTC_FAMILY_FREE( family, cache );
|
||||
}
|
||||
return error;
|
||||
|
@ -797,12 +797,10 @@
|
||||
if ( IS_HINTED( load->load_flags ) )
|
||||
{
|
||||
FT_Pos x = zone->org[n_points-4].x;
|
||||
FT_Pos y = zone->org[n_points-2].y;
|
||||
|
||||
|
||||
x = FT_PIX_ROUND( x ) - x;
|
||||
y = FT_PIX_ROUND( y ) - y;
|
||||
translate_array( n_points, zone->org, x, y );
|
||||
translate_array( n_points, zone->org, x, 0 );
|
||||
|
||||
org_to_cur( n_points, zone );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user