}
void
+evas_fonts_zero_free(Evas *evas)
+{
+ Fndat *fd;
+
+ while (fonts_zero)
+ {
+ fd = eina_list_data_get(fonts_zero);
+
+ if (fd->name) eina_stringshare_del(fd->name);
+ if (fd->source) eina_stringshare_del(fd->source);
+ evas->engine.func->font_free(evas->engine.data.output, fd->font);
+ free(fd);
+
+ fonts_zero = eina_list_remove_list(fonts_zero, fonts_zero);
+ }
+}
+
+void
evas_font_free(Evas *evas, void *font)
{
Eina_List *l;
while ((fonts_zero) &&
(eina_list_count(fonts_zero) > 4)) /* 4 is arbitrary */
{
- Fndat *fd;
-
fd = eina_list_data_get(fonts_zero);
if (fd->ref != 0) break;
fonts_zero = eina_list_remove_list(fonts_zero, fonts_zero);
fonts = evas_font_set_get(name);
EINA_LIST_FOREACH(fonts, l, nm) /* Load each font in append */
{
- if ((l == fonts) || (!font)) /* First iteration OR no font */
+ if (l == fonts || !font) /* First iteration OR no font */
{
#ifdef BUILD_FONT_LOADER_EET
if (source) /* Load Font from "eet" source */
}
eina_stringshare_del(nm);
}
- eina_list_free(fonts);
+ fonts = eina_list_free(fonts);
#ifdef HAVE_FONTCONFIG
-
if (!font) /* Search using fontconfig */
{
FcPattern *p_nm = NULL;
e->obscures = eina_list_remove(e->obscures, e->obscures->data);
}
- if (e->engine.func)
+ evas_fonts_zero_free(e);
+
+ if (e->engine.func)
{
e->engine.func->info_free(e, e->engine.info);
e->engine.func->context_free(e->engine.data.output, e->engine.data.context);
Eina_List *evas_font_dir_available_list(const Evas* evas);
void evas_font_dir_available_list_free(Eina_List *available);
void evas_font_free(Evas *evas, void *font);
+void evas_fonts_zero_free(Evas *evas);
void *evas_font_load(Evas *evas, const char *name, const char *source, int size);
void evas_font_load_hinting_set(Evas *evas, void *font, int hinting);
void evas_object_smart_member_cache_invalidate(Evas_Object *obj);
if (re->soft16_engine_image) evas_cache_engine_image_drop(&re->soft16_engine_image->cache_entry);
free(re);
-/* evas_common_font_shutdown(); */
+ evas_common_font_shutdown();
evas_common_image_shutdown();
evas_common_soft16_image_shutdown();
}