nuke segv in fm and leaks in menus.

SVN revision: 39644
This commit is contained in:
Carsten Haitzler 2009-03-23 09:36:11 +00:00
parent a5de46f4c2
commit 2e36885899
2 changed files with 17 additions and 2 deletions

View File

@ -1970,7 +1970,13 @@ _e_fm2_icon_mime_fdo_get(Evas *evas, const E_Fm2_Icon *ic, const char **type_ret
size = _e_fm2_icon_mime_size_normalize(ic);
icon = efreet_mime_type_icon_get(ic->info.mime, e_config->icon_theme, size);
if (icon) return _e_fm2_icon_explicit_get(evas, ic, icon, type_ret);
if (icon)
{
Evas_Object *o;
o = _e_fm2_icon_explicit_get(evas, ic, icon, type_ret);
free(icon);
return o;
}
return NULL;
}
@ -6325,13 +6331,13 @@ _e_fm2_cb_icon_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
ic->drag.start = 0;
ic->drag.dnd = 0;
ic->drag.src = 0;
ic->down_sel = 0;
if ((_e_fm2_inplace_open(ic) == 0) &&
(S_ISDIR(ic->info.statinfo.st_mode)) &&
(ic->sd->config->view.single_click))
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
}
ic->down_sel = 0;
}
static void

View File

@ -513,6 +513,8 @@ _e_int_menus_apps_scan(E_Menu *m, Efreet_Menu *menu)
_e_int_menus_apps_start,
entry);
e_menu_item_submenu_set(mi, subm);
e_object_free_attach_func_set(E_OBJECT(subm),
_e_int_menus_apps_free_hook2);
}
/* TODO: Highlight header
else if (entry->type == EFREET_MENU_ENTRY_HEADER)
@ -567,8 +569,15 @@ _e_int_menus_apps_free_hook2(void *obj)
{
E_Menu *m;
Efreet_Menu *menu;
Eina_List *l;
E_Menu_Item *mi;
m = obj;
EINA_LIST_FOREACH(m->items, l, mi)
{
if (mi->submenu)
e_object_del(E_OBJECT(mi->submenu));
}
menu = e_object_data_get(E_OBJECT(m));
if (menu) efreet_menu_free(menu);
}