From 0db6997026a05798eb0cbcbb3b37bf6121fb5f6a Mon Sep 17 00:00:00 2001 From: Alexei Podtelezhnikov Date: Thu, 30 Mar 2023 09:06:35 -0400 Subject: [PATCH] * src/sfnt/ttpost.c (load_format_20): Simplify comutations. --- src/sfnt/ttpost.c | 35 +++++++++++------------------------ 1 file 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 )