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