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

Reply via email to