Enlightenment CVS committal Author : englebass Project : e17 Module : libs/efreet
Dir : e17/libs/efreet/src/lib Modified Files: efreet_menu.c efreet_utils.c Log Message: All pointers aquired with efreet_desktop_get should be free'd with efreet_desktop_free now. =================================================================== RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_menu.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- efreet_menu.c 25 Jul 2007 17:00:56 -0000 1.19 +++ efreet_menu.c 26 Jul 2007 10:20:24 -0000 1.20 @@ -2472,6 +2472,7 @@ efreet_menu_desktop_free(Efreet_Menu_Desktop *md) { IF_RELEASE(md->id); + if (md->desktop) efreet_desktop_free(md->desktop); FREE(md); } @@ -3414,6 +3415,7 @@ { internal->directory_cache = ecore_hash_new(ecore_str_hash, ecore_str_compare); ecore_hash_free_key_cb_set(internal->directory_cache, ECORE_FREE_CB(free)); + ecore_hash_free_value_cb_set(internal->directory_cache, ECORE_FREE_CB(efreet_desktop_free)); ecore_dlist_last_goto(internal->directory_dirs); while ((path = ecore_dlist_previous(internal->directory_dirs))) =================================================================== RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_utils.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- efreet_utils.c 25 Jul 2007 17:00:56 -0000 1.42 +++ efreet_utils.c 26 Jul 2007 10:20:24 -0000 1.43 @@ -76,6 +76,8 @@ static void efreet_util_desktops_by_category_add(Efreet_Desktop *desktop); static void efreet_util_desktops_by_category_remove(Efreet_Desktop *desktop); +static void efreet_util_desktop_free(Efreet_Util_Desktop *ud); + static Ecore_Hash *desktop_by_file_id = NULL; static Ecore_Hash *file_id_by_desktop_path = NULL; static Ecore_Hash *desktops_by_category = NULL; @@ -103,7 +105,7 @@ EFREET_EVENT_DESKTOP_CHANGE = ecore_event_type_new(); desktop_by_file_id = ecore_hash_new(ecore_str_hash, ecore_str_compare); ecore_hash_free_key_cb_set(desktop_by_file_id, ECORE_FREE_CB(ecore_string_release)); - ecore_hash_free_value_cb_set(desktop_by_file_id, free); + ecore_hash_free_value_cb_set(desktop_by_file_id, ECORE_FREE_CB(efreet_util_desktop_free)); file_id_by_desktop_path = ecore_hash_new(ecore_str_hash, ecore_str_compare); ecore_hash_free_key_cb_set(file_id_by_desktop_path, ECORE_FREE_CB(ecore_string_release)); @@ -1043,4 +1045,13 @@ ecore_list_destroy(list); } } +} + +static void +efreet_util_desktop_free(Efreet_Util_Desktop *ud) +{ + if (!ud) return; + + efreet_desktop_free(ud->desktop); + free(ud); } ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs