From: barbieri Date: Sat, 20 Jun 2009 06:19:48 +0000 (+0000) Subject: free some leaks reported by valgrind in src/bin tests. X-Git-Tag: 2.0_alpha~51^2~572 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=53b774582cc55c3b382352dbdf1526134c68dfa2;p=framework%2Fuifw%2Fefreet.git free some leaks reported by valgrind in src/bin tests. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/efreet@41117 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/efreet_desktop.c b/src/lib/efreet_desktop.c index 72aaf1f..9766519 100644 --- a/src/lib/efreet_desktop.c +++ b/src/lib/efreet_desktop.c @@ -1222,9 +1222,12 @@ efreet_desktop_command_progress_get(Efreet_Desktop *desktop, Eina_List *files, if (command->num_pending == 0) { Eina_List *execs; + char *exec; + execs = efreet_desktop_command_build(command); ret = efreet_desktop_command_execs_process(command, execs); - eina_list_free(execs); + EINA_LIST_FREE(execs, exec) + free(exec); efreet_desktop_command_free(command); } diff --git a/src/lib/efreet_menu.c b/src/lib/efreet_menu.c index c4b632b..6c62b11 100644 --- a/src/lib/efreet_menu.c +++ b/src/lib/efreet_menu.c @@ -1949,7 +1949,10 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root, /* if the .desktop has categories it isn't legacy */ if (efreet_desktop_category_count_get(desktop) != 0) + { + efreet_desktop_free(desktop); continue; + } /* XXX: This will disappear when the .desktop is free'd */ efreet_desktop_category_add(desktop, "Legacy"); @@ -2547,9 +2550,12 @@ efreet_menu_entry_new(void) EAPI void efreet_menu_free(Efreet_Menu *entry) { + Efreet_Menu *sub; + IF_RELEASE(entry->name); IF_RELEASE(entry->icon); - entry->entries = eina_list_free(entry->entries); + EINA_LIST_FREE(entry->entries, sub) + efreet_menu_free(sub); IF_RELEASE(entry->id); if (entry->desktop) efreet_desktop_free(entry->desktop); FREE(entry); @@ -3420,7 +3426,10 @@ efreet_menu_app_dir_scan(Efreet_Menu_Internal *internal, const char *path, const if (eina_list_search_unsorted(internal->app_pool, EINA_COMPARE_CB(efreet_menu_cb_md_compare_ids), buf2)) + { + if (desktop) efreet_desktop_free(desktop); continue; + } menu_desktop = efreet_menu_desktop_new(); menu_desktop->desktop = desktop;