From: Khaled Hosny Date: Wed, 12 Sep 2018 09:04:17 +0000 (+0200) Subject: Fix uni_combining() X-Git-Tag: emacs-27.0.90~2671^2~53 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=981b3d292aff49452c2b5f0217b57ec1a2829a8b;p=emacs.git Fix uni_combining() --- 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; }