ref: 50aedae2beb40f21f1a86194fdfb1609939ed987
parent: 675431bec1b265da5b1d01cc2a6b1bd9f71656a3
author: Werner Lemberg <[email protected]>
date: Thu Feb 26 04:08:51 EST 2004
* src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>: Handle case where outline->num_vedges is zero while computing hinted metrics. * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value for `count'.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2004-02-24 Malcolm Taylor <[email protected]>
+
+ * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
+ Handle case where outline->num_vedges is zero while computing hinted
+ metrics.
+
+2004-02-24 Gordon Childs <[email protected]>
+
+ * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
+ for `count'.
+
2004-02-24 Werner Lemberg <[email protected]>
* include/freetype/t1tables.h (PS_PrivateRec): Add
--- a/src/autohint/ahhint.c
+++ b/src/autohint/ahhint.c
@@ -1540,6 +1540,7 @@
/* we now need to hint the metrics according to the change in */
/* width/positioning that occured during the hinting process */
+ if ( outline->num_vedges > 0 )
{
FT_Pos old_advance, old_rsb, old_lsb, new_lsb;
AH_Edge edge1 = outline->vert_edges; /* leftmost edge */
@@ -1560,6 +1561,12 @@
if ( hinter->pp2.x + hinter->pp1.x == edge2->pos && old_rsb > 4 )
hinter->pp2.x += 64;
#endif
+ }
+
+ else
+ {
+ hinter->pp1.x = ( hinter->pp1.x + 32 ) & -64;
+ hinter->pp2.x = ( hinter->pp2.x + 32 ) & -64;
}
/* good, we simply add the glyph to our loader's base */
--- a/src/cff/cffcmap.c
+++ b/src/cff/cffcmap.c
@@ -4,7 +4,7 @@
/* */
/* CFF character mapping table (cmap) support (body). */
/* */
-/* Copyright 2002, 2003 by */
+/* Copyright 2002, 2003, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -152,7 +152,7 @@
cmap->num_pairs = 0;
cmap->pairs = NULL;
- count = (FT_UInt)face->root.num_glyphs;
+ count = cff->num_glyphs;
if ( !FT_NEW_ARRAY( cmap->pairs, count ) )
{