* src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This

fixes Savannah bug #24430.
This commit is contained in:
Werner Lemberg 2008-10-02 10:17:32 +00:00
parent 89a1a51834
commit b17fb11f93
2 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2008-10-02 Bram Tassyns <bramt@enfocus.be>
* src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This
fixes Savannah bug #24430.
2008-10-02 Werner Lemberg <wl@gnu.org> 2008-10-02 Werner Lemberg <wl@gnu.org>
* builds/freetype.mk (BASE_H): Rename to... * builds/freetype.mk (BASE_H): Rename to...

View File

@ -2450,9 +2450,9 @@
{ {
FT_Error error; FT_Error error;
CFF_Decoder decoder; CFF_Decoder decoder;
TT_Face face = (TT_Face)glyph->root.face; TT_Face face = (TT_Face)glyph->root.face;
FT_Bool hinting, force_scaling; FT_Bool hinting, force_scaling;
CFF_Font cff = (CFF_Font)face->extra.data; CFF_Font cff = (CFF_Font)face->extra.data;
FT_Matrix font_matrix; FT_Matrix font_matrix;
FT_Vector font_offset; FT_Vector font_offset;
@ -2466,9 +2466,14 @@
if ( cff->top_font.font_dict.cid_registry != 0xFFFFU && if ( cff->top_font.font_dict.cid_registry != 0xFFFFU &&
cff->charset.cids ) cff->charset.cids )
{ {
glyph_index = cff_charset_cid_to_gindex( &cff->charset, glyph_index ); /* don't handle CID 0 (.notdef) which is directly mapped to GID 0 */
if ( glyph_index == 0 ) if ( glyph_index != 0 )
return CFF_Err_Invalid_Argument; {
glyph_index = cff_charset_cid_to_gindex( &cff->charset,
glyph_index );
if ( glyph_index == 0 )
return CFF_Err_Invalid_Argument;
}
} }
else if ( glyph_index >= cff->num_glyphs ) else if ( glyph_index >= cff->num_glyphs )
return CFF_Err_Invalid_Argument; return CFF_Err_Invalid_Argument;