diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2022-10-03 17:13:30 +0000 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2022-10-03 17:13:30 +0000 |
commit | 8faf57dd17088c37fa947fd565870648bbdbad18 (patch) | |
tree | 2bd941d64bbc7cb263f515b7d97de3bf73d3cfa8 | |
parent | b93f20ab7ad610c986497243ca963ca79013411c (diff) | |
download | freetype2-8faf57dd17088c37fa947fd565870648bbdbad18.tar.gz |
* 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.
-rw-r--r-- | src/cache/ftccmap.c | 14 |
1 files 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 - |