evas font: improved harfbuzz error checking 26/279126/2
authorMichal Szczecinski <m.szczecinsk@partner.samsung.com>
Tue, 2 Aug 2022 09:28:46 +0000 (11:28 +0200)
committerChun <jykeon@samsung.com>
Thu, 4 Aug 2022 02:01:47 +0000 (02:01 +0000)
Change-Id: I94f7d23dbb18887ff57a280acff44ba105f6d238

src/lib/evas/common/evas_font_ot.c

index 275727d..799eab1 100644 (file)
@@ -243,9 +243,14 @@ _evas_common_font_ot_shape(hb_buffer_t *buffer, RGBA_Font_Int *fi, Evas_Text_Pro
    /* Create hb_font if not previously created */
    if (!fi->ft.hb_font)
      {
-        hb_font_t *hb_ft_font;
-
+        hb_font_t *hb_ft_font = NULL;
         hb_ft_font = hb_ft_font_create(fi->src->ft.face, NULL);
+        //TIZEN ONLY(20220802): harfbuzz error checking added.
+        if (hb_ft_font == hb_font_get_empty())
+          {
+             fi->ft.hb_font = NULL;
+             return;
+          }
         fi->ft.hb_font = hb_font_create_sub_font(hb_ft_font);
         hb_font_destroy(hb_ft_font);
 
@@ -271,7 +276,7 @@ evas_common_font_ot_populate_text_props(const Eina_Unicode *text,
                                         const char *lang)
 {
    RGBA_Font_Int *fi;
-   hb_buffer_t *buffer;
+   hb_buffer_t *buffer = NULL;
    hb_glyph_position_t *positions;
    hb_glyph_info_t *infos;
    int slen;
@@ -292,6 +297,8 @@ evas_common_font_ot_populate_text_props(const Eina_Unicode *text,
      }
 
    buffer = hb_buffer_create();
+   //TIZEN ONLY(20220802): harfbuzz error checking added.
+   if (buffer == hb_buffer_get_empty()) return EINA_FALSE;
    hb_buffer_set_unicode_funcs(buffer, _evas_common_font_ot_unicode_funcs_get());
    hb_buffer_set_language(buffer, hb_language_from_string(lang, -1));
    hb_buffer_set_script(buffer, _evas_script_to_harfbuzz[props->script]);