Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/conf_applications


Modified Files:
        e_int_config_apps.c 


Log Message:
ref and free .desktop files.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/conf_applications/e_int_config_apps.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_int_config_apps.c 25 Jul 2007 17:00:50 -0000      1.3
+++ e_int_config_apps.c 26 Jul 2007 11:27:02 -0000      1.4
@@ -224,6 +224,7 @@
    Ecore_List *apps;
 
    apps = ecore_list_new();
+   ecore_list_free_cb_set(apps, ECORE_FREE_CB(efreet_desktop_free));
 
    menu = efreet_menu_parse(path);
    if (!menu) return apps;
@@ -232,6 +233,7 @@
    while ((entry = ecore_list_next(menu->entries))) 
      {
        if (entry->type != EFREET_MENU_ENTRY_DESKTOP) continue;
+       efreet_desktop_ref(entry->desktop);
        ecore_list_append(apps, entry->desktop);
      }
    efreet_menu_free(menu);
@@ -246,10 +248,15 @@
    Ecore_List *apps;
 
    apps = ecore_list_new();
+   ecore_list_free_cb_set(apps, ECORE_FREE_CB(efreet_desktop_free));
    order = e_order_new(path);
    for (l = order->desktops; l; l = l->next) 
-     ecore_list_append(apps, l->data);
+     {
+       efreet_desktop_ref(l->data);
+       ecore_list_append(apps, l->data);
+     }
 
+   e_object_del(E_OBJECT(order));
    return apps;
 }
 
@@ -372,7 +379,7 @@
    while ((desk = ecore_list_next(cfdata->apps)))
      e_order_append(order, desk);
 
-   //XXX need a way to free an E_Order
+   e_object_del(E_OBJECT(order));
    return 1;
 }
 
@@ -604,7 +611,13 @@
    desk = efreet_desktop_get(cfdata->fav);
    if (!desk) return;
    if (ecore_list_goto(cfdata->apps, desk))
-     ecore_list_remove(cfdata->apps);
+     {
+       Efreet_Desktop *tmp;
+
+       tmp = ecore_list_remove(cfdata->apps);
+       efreet_desktop_free(tmp);
+     }
+   efreet_desktop_free(desk);
 }
 
 static void 
@@ -646,11 +659,16 @@
 
    if (ecore_list_goto(cfdata->apps, desk)) 
      {
+       Efreet_Desktop *tmp;
+
        i = ecore_list_index(cfdata->apps);
-       ecore_list_remove(cfdata->apps);
+       tmp = ecore_list_remove(cfdata->apps);
        ecore_list_index_goto(cfdata->apps, (i - 1));
        ecore_list_insert(cfdata->apps, desk);
+       efreet_desktop_free(tmp);
      }
+   else
+     efreet_desktop_free(desk);
 }
 
 static void 
@@ -692,9 +710,14 @@
 
    if (ecore_list_goto(cfdata->apps, desk)) 
      {
+       Efreet_Desktop *tmp;
+
        i = ecore_list_index(cfdata->apps);
-       ecore_list_remove(cfdata->apps);
+       tmp = ecore_list_remove(cfdata->apps);
        ecore_list_index_goto(cfdata->apps, (i + 1));
        ecore_list_insert(cfdata->apps, desk);
+       efreet_desktop_free(tmp);
      }
+   else
+     efreet_desktop_free(desk);
 }



-------------------------------------------------------------------------
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