diff --git a/legacy/efreet/ChangeLog b/legacy/efreet/ChangeLog index db94316f88..55a5c3b7f0 100644 --- a/legacy/efreet/ChangeLog +++ b/legacy/efreet/ChangeLog @@ -9,3 +9,7 @@ 2011-01-30 Carsten Haitzler (The Rasterman) Fix tests to not build clearenv related code if not available + +2011-01-31 Sebastian Dransfeld + + * Fix memleak, free cache icons after retrival diff --git a/legacy/efreet/src/lib/efreet_icon.c b/legacy/efreet/src/lib/efreet_icon.c index 6224e794d1..baad59b67a 100644 --- a/legacy/efreet/src/lib/efreet_icon.c +++ b/legacy/efreet/src/lib/efreet_icon.c @@ -456,6 +456,7 @@ efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int siz cache = efreet_cache_icon_find(theme, tmp); value = efreet_cache_icon_lookup_icon(cache, size); if (!value) INFO("lookup for `%s` failed in theme `%s` with %p.", icon, theme_name, cache); + efreet_cache_icon_free(cache); #else value = efreet_icon_find_helper(theme, tmp, size); #endif @@ -476,6 +477,7 @@ efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int siz cache = efreet_cache_icon_fallback_find(icon); value = efreet_cache_icon_fallback_lookup_path(cache); if (!value) INFO("lookup for `%s` failed in fallback too with %p.", icon, cache); + efreet_cache_icon_fallback_free(cache); } #else value = efreet_icon_fallback_icon(icon); @@ -541,6 +543,7 @@ efreet_icon_list_find(const char *theme_name, Eina_List *icons, if (!strcmp(cache->theme, theme->name.internal)) { value = efreet_cache_icon_lookup_icon(cache, size); + efreet_cache_icon_free(cache); break; } else