summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2023-03-30 09:06:35 -0400
committerAlexei Podtelezhnikov <apodtele@gmail.com>2023-03-30 09:06:35 -0400
commit0db6997026a05798eb0cbcbb3b37bf6121fb5f6a (patch)
tree3e3ed2f9017527dda07742f0ef9afd4aded4b90a
parent4679fcb666494d200097845b4bd409fafe7eba5a (diff)
downloadfreetype2-0db6997026a05798eb0cbcbb3b37bf6121fb5f6a.tar.gz
* src/sfnt/ttpost.c (load_format_20): Simplify comutations.
-rw-r--r--src/sfnt/ttpost.c35
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 )