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

Reply via email to