Check that the ecore_lists are valid before traversing. This eliminates a

warning when opening "Favorite Apps" about ecore_list_next w/ list == NULL.


SVN revision: 33171
This commit is contained in:
Christopher Michael 2007-12-18 01:27:44 +00:00
parent 1dcd16286c
commit 9d91832842
1 changed files with 32 additions and 23 deletions

View File

@ -304,7 +304,7 @@ _load_menu(const char *path)
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,6 +351,8 @@ _fill_apps(E_Config_Dialog_Data *cfdata)
evas = evas_object_evas_get(cfdata->o_all);
desks = efreet_util_desktop_name_glob_list("*");
if (desks)
{
ecore_list_sort(desks, ECORE_COMPARE_CB(_cb_sort_desks), ECORE_SORT_MIN);
ecore_list_first_goto(desks);
while ((desk = ecore_list_next(desks)))
@ -361,14 +363,16 @@ _fill_apps(E_Config_Dialog_Data *cfdata)
ecore_list_append(l, desk);
}
}
if (desks) ecore_list_destroy(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);
if (l)
{
ecore_list_first_goto(l);
while ((desk = ecore_list_next(l)))
{
@ -378,7 +382,8 @@ _fill_apps(E_Config_Dialog_Data *cfdata)
e_widget_ilist_append(cfdata->o_all, icon, desk->name,
_all_list_cb_selected, cfdata, desk->orig_path);
}
if (l) ecore_list_destroy(l);
ecore_list_destroy(l);
}
e_widget_ilist_go(cfdata->o_all);
e_widget_ilist_thaw(cfdata->o_all);
@ -401,6 +406,8 @@ _fill_list(E_Config_Dialog_Data *cfdata)
edje_freeze();
e_widget_ilist_freeze(cfdata->o_sel);
e_widget_ilist_clear(cfdata->o_sel);
if (cfdata->apps)
{
ecore_list_first_goto(cfdata->apps);
while ((desk = ecore_list_next(cfdata->apps)))
{
@ -410,7 +417,9 @@ _fill_list(E_Config_Dialog_Data *cfdata)
e_widget_ilist_append(cfdata->o_sel, icon, desk->name,
_sel_list_cb_selected, cfdata, desk->orig_path);
}
if (cfdata->apps) ecore_list_destroy(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);