From 66c8385ac1a3e6da91f0a88dc6dd80748c1777a2 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 4 Apr 2010 14:04:30 +0000 Subject: [PATCH] 'everything' fix segv in border plugin SVN revision: 47747 --- .../everything/sources/evry_plug_border.c | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/modules/everything/sources/evry_plug_border.c b/src/modules/everything/sources/evry_plug_border.c index d2d278935..55eb721aa 100644 --- a/src/modules/everything/sources/evry_plug_border.c +++ b/src/modules/everything/sources/evry_plug_border.c @@ -15,18 +15,19 @@ _cb_border_remove(void *data, int type, void *event) ev = event; - EINA_LIST_FOREACH(p->items, l, it) - { - if (it->data == ev->border) - { - p->items = eina_list_remove(p->items, it); - if (border_hash) - eina_hash_del_by_key(border_hash, ev->border); - evry_item_free(it); - evry_plugin_async_update(p, EVRY_ASYNC_UPDATE_ADD); - break; - } - } + it = eina_hash_find(border_hash, &(ev->border)); + + printf("border del cb\n"); + + if (!it) return 1; + + printf("border del cb %s\n", it->label); + + eina_hash_del_by_key(border_hash, &(ev->border)); + + p->items = eina_list_remove(p->items, it); + evry_item_free(it); + evry_plugin_async_update(p, EVRY_ASYNC_UPDATE_ADD); return 1; }