'everything' module: fix segv in wallpaper module
authorHannes Janetzek <hannes.janetzek@gmail.com>
Sun, 23 Aug 2009 04:02:36 +0000 (04:02 +0000)
committerHannes Janetzek <hannes.janetzek@gmail.com>
Sun, 23 Aug 2009 04:02:36 +0000 (04:02 +0000)
- cleanups

SVN revision: 41934

src/modules/everything/evry_plug_actions.c
src/modules/everything/evry_plug_apps.c
src/modules/everything/evry_plug_border.c
src/modules/everything/evry_plug_border_act.c
src/modules/everything/evry_plug_wallpaper.c

index e57558c37505b87447640b6cec1fc64addac9235..ebfd354f2975ebe653083bdf34f28357b215fd18 100644 (file)
@@ -105,7 +105,7 @@ _fetch(Evry_Plugin *p, const char *input)
      }
 
    if (input)
-     p->items = eina_list_sort(p->items, eina_list_count(p->items), _cb_sort);
+     EVRY_PLUGIN_ITEMS_SORT(p, _cb_sort);
 
    if (p->items) return 1;
 
index a7c808b24de9c180468553a026c4517bd23b40f1..c163b797fe32b4e4f90644d6eb668a2b2af6054c 100644 (file)
@@ -59,10 +59,7 @@ _begin(Evry_Plugin *plugin, const Evry_Item *item)
 static void
 _list_free(Evry_Plugin *plugin)
 {
-   Evry_Item *it;
 
-   EINA_LIST_FREE(plugin->items, it)
-     evry_item_free(it);
 }
 
 static void
@@ -80,10 +77,9 @@ static void
 _cleanup(Evry_Plugin *plugin)
 {
    PLUGIN(p, plugin);
-   /* Plugin *p = (Plugin*) plugin; */
    Efreet_Desktop *desktop;
 
-   _list_free(plugin);
+   EVRY_PLUGIN_ITEMS_FREE(p);
 
    EINA_LIST_FREE(p->apps_mime, desktop)
      efreet_desktop_free(desktop);
@@ -236,14 +232,15 @@ static int
 _fetch(Evry_Plugin *plugin, const char *input)
 {
    PLUGIN(p, plugin);
-   /* Plugin *p = (Plugin*) plugin; */
    Eina_List *l;
    Efreet_Desktop *desktop;
+   Evry_Item *it;
    char *file;
+   int prio = 0;
 
    p->added = eina_hash_string_small_new(NULL);
 
-   _list_free(plugin);
+   EVRY_PLUGIN_ITEMS_FREE(p);
 
    /* add apps for a given mimetype */
    if (plugin->type == type_action)
@@ -340,20 +337,14 @@ _fetch(Evry_Plugin *plugin, const char *input)
 
    eina_hash_free(p->added);
 
-   if (plugin->items)
-     {
-       int prio = 0;
-       Evry_Item *it;
+   if (!plugin->items) return 0;
 
-       l = plugin->items;
-       plugin->items = eina_list_sort(l, eina_list_count(l), _cb_sort);
-       EINA_LIST_FOREACH(plugin->items, l, it)
-         it->priority = prio++;
+   EVRY_PLUGIN_ITEMS_SORT(plugin, _cb_sort);
 
-       return 1;
-     }
+   EINA_LIST_FOREACH(plugin->items, l, it)
+     it->priority = prio++;
 
-   return 0;
+   return 1;
 }
 
 static Evas_Object *
index 1b4aa7f7a257a4ca2d82af0ea55b775999f8bc6a..3d37e93002256cae1346f0f5c95ba316d4de8f93 100644 (file)
@@ -134,14 +134,11 @@ _fetch(Evry_Plugin *p, const char *input)
          }
      }
 
-   if (p->items)
-     {
-       p->items = eina_list_sort(p->items, eina_list_count(p->items), _cb_sort);
-
-       return 1;
-     }
+   if (!p->items) return 0;
+   
+   EVRY_PLUGIN_ITEMS_SORT(p, _cb_sort);
 
-   return 0;
+   return 1;
 }
 
 static Evas_Object *
index b2550644d68f6c01f0e3107e5c80cc78c9001c3f..94b252f32513bd3d0efe9fd9fa75001e07a52aa1 100644 (file)
@@ -171,13 +171,11 @@ _fetch(Evry_Plugin *p, const char *input)
             _act_cb_border_close,
             "window-close", input);
 
-   if (eina_list_count(p->items) > 0)
-     {
-       p->items = eina_list_sort(p->items, eina_list_count(p->items), _cb_sort);
-       return 1;
-     }
+   if (!p->items) return 0;
 
-   return 0;
+   EVRY_PLUGIN_ITEMS_SORT(p, _cb_sort);
+
+   return 1;
 }
 
 static int
index 3c1e26c09950b433bce974e13ba8a198c9f1df09..ac823e8a29d49d4cc52062a07014adeca80acc76 100644 (file)
@@ -96,7 +96,7 @@ _begin(Evry_Plugin *plugin, const Evry_Item *item)
        p->base.items = NULL;
        p->file = file;
 
-       it = evry_item_new(NULL, plugin, _("Set as Wallpaper"), NULL);
+       it = evry_item_new(NULL, EVRY_PLUGIN(p), _("Set as Wallpaper"), NULL);
        it->browseable = EINA_TRUE;
 
        p->items = eina_list_append(p->items, it);
@@ -170,7 +170,7 @@ _action(Evry_Plugin *plugin, const Evry_Item *item)
 {
    PLUGIN(p, plugin);
 
-   if (p->prev)
+   if (p->prev && p->prev->file)
      {
        Import *import;
        Item *it = (Item*) item;