freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master 8faf57dd1: * src/cache/ftccmap.c (FTC_CMapCache_Looku


From: Werner Lemberg
Subject: [freetype2] master 8faf57dd1: * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Avoid `FT_Set_Charmap`.
Date: Mon, 3 Oct 2022 13:13:40 -0400 (EDT)

branch: master
commit 8faf57dd17088c37fa947fd565870648bbdbad18
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Avoid `FT_Set_Charmap`.
    
    Set charmap aggressively without all validations of `FT_Set_Charmap`
    because we take it from the available array and only temporarily.
    Even CMap Format 14 will gracefully return 0.
---
 src/cache/ftccmap.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/cache/ftccmap.c b/src/cache/ftccmap.c
index 8e97a7b57..25330596c 100644
--- a/src/cache/ftccmap.c
+++ b/src/cache/ftccmap.c
@@ -297,19 +297,17 @@
 
       if ( cmap_index < face->num_charmaps )
       {
-        FT_CharMap  old, cmap  = NULL;
+        FT_CharMap  old  = face->charmap;
+        FT_CharMap  cmap = face->charmaps[cmap_index];
 
 
-        old  = face->charmap;
-        cmap = face->charmaps[cmap_index];
-
-        if ( old != cmap && !no_cmap_change )
-          FT_Set_Charmap( face, cmap );
+        if ( !no_cmap_change )
+          face->charmap = cmap;
 
         gindex = FT_Get_Char_Index( face, char_code );
 
-        if ( old != cmap && !no_cmap_change )
-          FT_Set_Charmap( face, old );
+        if ( !no_cmap_change )
+          face->charmap = old;
       }
 
       FTC_CMAP_NODE( node )->indices[char_code -



reply via email to

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