fix crashing when deleting shelves

ticket #1439


SVN revision: 75924
This commit is contained in:
Mike Blumenkrantz 2012-08-31 18:58:18 +00:00
parent e440668ea8
commit 3f3466c415
2 changed files with 11 additions and 6 deletions

View File

@ -1065,6 +1065,15 @@ _e_shelf_free_cb(void *data __UNUSED__, void *event)
}
e_object_del(E_OBJECT(es->popup));
}
if (es->cfg_delete)
{
e_config->shelves = eina_list_remove(e_config->shelves, es->cfg);
eina_stringshare_del(es->cfg->name);
eina_stringshare_del(es->cfg->style);
free(es->cfg);
e_config_save_queue();
}
free(es);
}
@ -1510,13 +1519,8 @@ _e_shelf_cb_confirm_dialog_yes(void *data)
es = data;
cfg = es->cfg;
if (e_object_is_del(E_OBJECT(es))) return;
es->cfg_delete = 1;
e_object_del(E_OBJECT(es));
e_config->shelves = eina_list_remove(e_config->shelves, cfg);
if (cfg->name) eina_stringshare_del(cfg->name);
if (cfg->style) eina_stringshare_del(cfg->style);
E_FREE(cfg);
e_config_save_queue();
}
static void

View File

@ -45,6 +45,7 @@ struct _E_Shelf
unsigned char edge : 1;
unsigned char urgent_show : 1;
unsigned char dummy : 1;
Eina_Bool cfg_delete : 1;
unsigned int locked;
};