diff --git a/src/lib/evas/common/evas_font_load.c b/src/lib/evas/common/evas_font_load.c index 45cec00f45..76e0382f96 100644 --- a/src/lib/evas/common/evas_font_load.c +++ b/src/lib/evas/common/evas_font_load.c @@ -355,7 +355,13 @@ evas_common_font_int_memory_load(const char *source, const char *name, int size, fi->cs2_handler = evas_cserve2_font_load(source, name, size, font_dpi, wanted_rend); if (fi->cs2_handler) - evas_cserve2_font_load_wait((Font_Entry *)fi->cs2_handler); + { + if (evas_cserve2_font_load_wait((Font_Entry *)fi->cs2_handler) != 0) + { + evas_cserve2_font_free(fi->cs2_handler); + fi->cs2_handler = NULL; + } + } } #endif free(fake_name); @@ -391,7 +397,13 @@ evas_common_font_int_load(const char *name, int size, fi->cs2_handler = evas_cserve2_font_load(NULL, name, size, font_dpi, wanted_rend); if (fi->cs2_handler) - evas_cserve2_font_load_wait((Font_Entry *)fi->cs2_handler); + { + if (evas_cserve2_font_load_wait((Font_Entry *)fi->cs2_handler) != 0) + { + evas_cserve2_font_free(fi->cs2_handler); + fi->cs2_handler = NULL; + } + } } #endif // evas_common_font_int_load_complete(fi); diff --git a/src/lib/evas/cserve2/evas_cs2_client.c b/src/lib/evas/cserve2/evas_cs2_client.c index 5830c4567c..b6aeba691d 100644 --- a/src/lib/evas/cserve2/evas_cs2_client.c +++ b/src/lib/evas/cserve2/evas_cs2_client.c @@ -1165,6 +1165,7 @@ evas_cserve2_font_free(Font_Entry *fe) if (ret != CSERVE2_NONE) { ERR("Failed to wait loading font '%s'.", fe->name); + _font_entry_free(fe); return; }