Enlightenment CVS committal Author : devilhorns Project : e17 Module : apps/e
Dir : e17/apps/e/src/modules/conf_applications Modified Files: e_int_config_apps.c Log Message: Check that the ecore_lists are valid before traversing. This eliminates a warning when opening "Favorite Apps" about ecore_list_next w/ list == NULL. =================================================================== RCS file: /cvs/e/e17/apps/e/src/modules/conf_applications/e_int_config_apps.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_int_config_apps.c 4 Dec 2007 16:58:04 -0000 1.9 +++ e_int_config_apps.c 18 Dec 2007 01:27:44 -0000 1.10 @@ -304,7 +304,7 @@ 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; + if ((!menu) || (!menu->entries)) return apps; ecore_list_first_goto(menu->entries); while ((entry = ecore_list_next(menu->entries))) { @@ -351,34 +351,39 @@ evas = evas_object_evas_get(cfdata->o_all); desks = efreet_util_desktop_name_glob_list("*"); - ecore_list_sort(desks, ECORE_COMPARE_CB(_cb_sort_desks), ECORE_SORT_MIN); - ecore_list_first_goto(desks); - while ((desk = ecore_list_next(desks))) + if (desks) { - if (!ecore_list_find(l, ECORE_COMPARE_CB(_cb_sort_desks), desk)) + ecore_list_sort(desks, ECORE_COMPARE_CB(_cb_sort_desks), ECORE_SORT_MIN); + ecore_list_first_goto(desks); + while ((desk = ecore_list_next(desks))) { - efreet_desktop_ref(desk); - ecore_list_append(l, desk); + if (!ecore_list_find(l, ECORE_COMPARE_CB(_cb_sort_desks), desk)) + { + efreet_desktop_ref(desk); + ecore_list_append(l, desk); + } } + ecore_list_destroy(desks); } - - if (desks) ecore_list_destroy(desks); if (l) ecore_list_sort(l, ECORE_COMPARE_CB(_cb_sort_desks), ECORE_SORT_MIN); evas_event_freeze(evas); edje_freeze(); e_widget_ilist_freeze(cfdata->o_all); e_widget_ilist_clear(cfdata->o_all); - ecore_list_first_goto(l); - while ((desk = ecore_list_next(l))) + if (l) { - Evas_Object *icon = NULL; + ecore_list_first_goto(l); + while ((desk = ecore_list_next(l))) + { + Evas_Object *icon = NULL; - icon = e_util_desktop_icon_add(desk, "24x24", evas); - e_widget_ilist_append(cfdata->o_all, icon, desk->name, - _all_list_cb_selected, cfdata, desk->orig_path); + icon = e_util_desktop_icon_add(desk, "24x24", evas); + e_widget_ilist_append(cfdata->o_all, icon, desk->name, + _all_list_cb_selected, cfdata, desk->orig_path); + } + ecore_list_destroy(l); } - if (l) ecore_list_destroy(l); e_widget_ilist_go(cfdata->o_all); e_widget_ilist_thaw(cfdata->o_all); @@ -401,16 +406,20 @@ edje_freeze(); e_widget_ilist_freeze(cfdata->o_sel); e_widget_ilist_clear(cfdata->o_sel); - ecore_list_first_goto(cfdata->apps); - while ((desk = ecore_list_next(cfdata->apps))) + if (cfdata->apps) { - Evas_Object *icon = NULL; + ecore_list_first_goto(cfdata->apps); + while ((desk = ecore_list_next(cfdata->apps))) + { + Evas_Object *icon = NULL; - icon = e_util_desktop_icon_add(desk, "24x24", evas); - e_widget_ilist_append(cfdata->o_sel, icon, desk->name, - _sel_list_cb_selected, cfdata, desk->orig_path); + icon = e_util_desktop_icon_add(desk, "24x24", evas); + e_widget_ilist_append(cfdata->o_sel, icon, desk->name, + _sel_list_cb_selected, cfdata, desk->orig_path); + } + ecore_list_destroy(cfdata->apps); } - if (cfdata->apps) ecore_list_destroy(cfdata->apps); + cfdata->apps = NULL; e_widget_ilist_go(cfdata->o_sel); e_widget_min_size_get(cfdata->o_sel, &w, NULL); ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs