Commit 0db6997026a05798eb0cbcbb3b37bf6121fb5f6a

Alexei Podtelezhnikov 2023-03-30T09:06:35

* src/sfnt/ttpost.c (load_format_20): Simplify comutations.

diff --git a/src/sfnt/ttpost.c b/src/sfnt/ttpost.c
index 81992b3..4ab3536 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 )