diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2023-03-30 09:06:35 -0400 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2023-03-30 09:06:35 -0400 |
commit | 0db6997026a05798eb0cbcbb3b37bf6121fb5f6a (patch) | |
tree | 3e3ed2f9017527dda07742f0ef9afd4aded4b90a /src/sfnt/ttpost.c | |
parent | 4679fcb666494d200097845b4bd409fafe7eba5a (diff) | |
download | freetype2-0db6997026a05798eb0cbcbb3b37bf6121fb5f6a.tar.gz |
* src/sfnt/ttpost.c (load_format_20): Simplify comutations.
Diffstat (limited to 'src/sfnt/ttpost.c')
-rw-r--r-- | src/sfnt/ttpost.c | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/src/sfnt/ttpost.c b/src/sfnt/ttpost.c index 81992b3fb..4ab3536b2 100644 --- a/src/sfnt/ttpost.c +++ b/src/sfnt/ttpost.c @@ -164,7 +164,7 @@ FT_Error error; FT_Int num_glyphs; - FT_UShort num_names; + FT_UShort num_names = 0; FT_UShort* glyph_indices = NULL; FT_Byte** name_strings = NULL; @@ -186,9 +186,10 @@ goto Exit; } - /* load the indices */ + /* load the indices and note their maximum */ { - FT_Int n; + FT_Int n; + FT_UShort idx; if ( FT_QNEW_ARRAY( glyph_indices, num_glyphs ) || @@ -196,32 +197,18 @@ goto Fail; for ( n = 0; n < num_glyphs; n++ ) - glyph_indices[n] = FT_GET_USHORT(); + { + glyph_indices[n] = idx = FT_GET_USHORT(); + + if ( idx > num_names ) + num_names = idx; + } FT_FRAME_EXIT(); } /* compute number of names stored in table */ - { - FT_Int n; - - - num_names = 0; - - for ( n = 0; n < num_glyphs; n++ ) - { - FT_Int idx; - - - idx = glyph_indices[n]; - if ( idx >= 258 ) - { - idx -= 257; - if ( idx > num_names ) - num_names = (FT_UShort)idx; - } - } - } + num_names = num_names > 257 ? num_names - 257 : 0; /* now load the name strings */ if ( num_names ) |