freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master 0db699702: * src/sfnt/ttpost.c (load_format_20): Simp


From: Werner Lemberg
Subject: [freetype2] master 0db699702: * src/sfnt/ttpost.c (load_format_20): Simplify comutations.
Date: Thu, 30 Mar 2023 09:10:08 -0400 (EDT)

branch: master
commit 0db6997026a05798eb0cbcbb3b37bf6121fb5f6a
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    * 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 )



reply via email to

[Prev in Thread] Current Thread [Next in Thread]