From 981b3d292aff49452c2b5f0217b57ec1a2829a8b Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Wed, 12 Sep 2018 11:04:17 +0200 Subject: [PATCH] Fix uni_combining() --- src/ftfont.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/ftfont.c b/src/ftfont.c index 46f32e0f5fe..a645bbf0294 100644 --- a/src/ftfont.c +++ b/src/ftfont.c @@ -2690,16 +2690,14 @@ ftfont_variation_glyphs (struct font *font, int c, unsigned variations[256]) static hb_unicode_combining_class_t uni_combining (hb_unicode_funcs_t *funcs, hb_codepoint_t ch, void *user_data) { - /* FIXME: Is it OK to load the table each time like this? */ - Lisp_Object table = uniprop_table (intern ("canonical-combining-class")); - if (!NILP (table)) - { - /* FIXME: something is wrong here, the classes we are getting do not make - * sense. */ - Lisp_Object combining = CHAR_TABLE_REF (table, ch); - if (INTEGERP (combining)) - return (hb_unicode_combining_class_t) XFIXNUM (combining); - } + Lisp_Object table, combining; + + /* FIXME: Is it efficient to load the table each time? */ + table = Funicode_property_table_internal (intern ("canonical-combining-class")); + combining = Fget_unicode_property_internal (table, make_fixnum (ch)); + + if (INTEGERP (combining)) + return (hb_unicode_combining_class_t) XFIXNUM (combining); return HB_UNICODE_COMBINING_CLASS_NOT_REORDERED; } -- 2.39.2