more leak--!

SVN revision: 39646
This commit is contained in:
Carsten Haitzler 2009-03-23 10:19:13 +00:00
parent 2e36885899
commit bf37a93c2e
2 changed files with 21 additions and 1 deletions

View File

@ -60,6 +60,7 @@ static void _e_int_menus_shelves_del_cb(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_main_showhide(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_main_restart(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_main_exit(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_desktops_free_hook(void *obj);
static void _e_int_menus_desk_item_cb(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_int_menus_item_label_set(Efreet_Menu *entry, E_Menu_Item *mi);
@ -272,6 +273,7 @@ e_int_menus_desktops_new(void)
e_util_menu_item_theme_icon_set(mi, "preferences-system-windows");
e_menu_item_callback_set(mi, _e_int_menus_main_showhide, NULL);
e_object_free_attach_func_set(E_OBJECT(m), _e_int_menus_desktops_free_hook);
return m;
}
@ -662,6 +664,21 @@ _e_int_menus_virtuals_pre_cb(void *data, E_Menu *m)
}
}
static void
_e_int_menus_desktops_free_hook(void *obj)
{
E_Menu *m;
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));
}
}
static void
_e_int_menus_desk_item_cb(void *data, E_Menu *m, E_Menu_Item *mi)
{

View File

@ -906,6 +906,7 @@ _e_intl_locale_validate(const char *locale)
/* Match locale with one from the list */
EINA_LIST_FREE(all_locales, locale_next)
{
if (found == 0)
{
E_Locale_Parts *locale_parts_next;
@ -973,7 +974,9 @@ _e_intl_locale_validate(const char *locale)
e_intl_locale_parts_free(locale_parts_next);
E_FREE(locale_lr_next);
}
free (locale_next);
}
e_intl_locale_parts_free(locale_parts);
free(locale_lr);
E_FREE(locale_cs_canonic);