diff options
author | Po Lu <luangruo@yahoo.com> | 2023-02-20 11:38:59 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2023-02-20 11:38:59 +0800 |
commit | 34ba481c8ea86da7922129f684c18b7aba186947 (patch) | |
tree | 59a7d416cb2089cc958dca4a4a543d2efd61960e /src/fontset.c | |
parent | b91396bace7e09ba1dc0430ce5e2b5b3000fe77a (diff) | |
download | emacs-34ba481c8ea86da7922129f684c18b7aba186947.tar.gz emacs-34ba481c8ea86da7922129f684c18b7aba186947.tar.bz2 emacs-34ba481c8ea86da7922129f684c18b7aba186947.zip |
Improve SFNT driver lookup efficiency
* src/fontset.c (fontset_find_font): Add compatibility test to
registry strangeness case.
* src/sfnt.c (sfnt_read_cmap_table): Don't read subtable data if
DATA is NULL.
* src/sfntfont.c (struct sfnt_font_desc): New field `registry'.
(sfnt_registry_for_subtable): New function.
(sfntfont_identify_cmap): Move above sfnt_grok_registry.
(sfnt_grok_registry): New function.
(sfnt_enum_font_1): Call it.
(sfntfont_registries_compatible_p): New function.
(sfntfont_list_1): Check registry compatibility.
(sfntfont_registry_for_desc): New function.
(mark_sfntfont): Mark desc->registry.
Diffstat (limited to 'src/fontset.c')
-rw-r--r-- | src/fontset.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/fontset.c b/src/fontset.c index 8182d639299..bcf200aeae8 100644 --- a/src/fontset.c +++ b/src/fontset.c @@ -683,7 +683,13 @@ fontset_find_font (Lisp_Object fontset, int c, struct face *face, && !NILP (AREF (spec, FONT_REGISTRY_INDEX)) && !NILP (AREF (font_object, FONT_REGISTRY_INDEX)) && !EQ (AREF (spec, FONT_REGISTRY_INDEX), - AREF (font_object, FONT_REGISTRY_INDEX))) + AREF (font_object, FONT_REGISTRY_INDEX)) + /* See sfntfont_registries_compatible_p in + sfntfont.c. */ + && !(EQ (AREF (spec, FONT_REGISTRY_INDEX), + Qiso8859_1) + && EQ (AREF (font_object, FONT_REGISTRY_INDEX), + Qiso10646_1))) goto strangeness; } |