elm_toolbar: fix memory leaks
Summary: incorrect evas_object_box_children_get usage: returned list must be freed @fix Reviewers: cedric, seoz, raster, reutskiy.v.v, Hermet Differential Revision: https://phab.enlightenment.org/D2412
This commit is contained in:
parent
1cdbbcde90
commit
39ed1a812b
|
@ -576,6 +576,7 @@ _resize_job(void *data)
|
||||||
evas_object_hide(VIEW(it));
|
evas_object_hide(VIEW(it));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
eina_list_free(list);
|
||||||
list = evas_object_box_children_get(sd->bx_more2);
|
list = evas_object_box_children_get(sd->bx_more2);
|
||||||
EINA_INLIST_FOREACH(sd->items, it)
|
EINA_INLIST_FOREACH(sd->items, it)
|
||||||
{
|
{
|
||||||
|
@ -588,6 +589,7 @@ _resize_job(void *data)
|
||||||
evas_object_hide(VIEW(it));
|
evas_object_hide(VIEW(it));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
eina_list_free(list);
|
||||||
|
|
||||||
_mirrored_set(obj, elm_widget_mirrored_get(obj));
|
_mirrored_set(obj, elm_widget_mirrored_get(obj));
|
||||||
}
|
}
|
||||||
|
@ -780,14 +782,14 @@ static Elm_Toolbar_Item_Data *
|
||||||
_focus_next_item_get(Evas_Object *obj, Eina_Bool reverse)
|
_focus_next_item_get(Evas_Object *obj, Eina_Bool reverse)
|
||||||
{
|
{
|
||||||
ELM_TOOLBAR_DATA_GET(obj, sd);
|
ELM_TOOLBAR_DATA_GET(obj, sd);
|
||||||
Eina_List *list = NULL;
|
Eina_List *list = NULL, *children_list;
|
||||||
Elm_Toolbar_Item_Data *it = NULL;
|
Elm_Toolbar_Item_Data *it = NULL;
|
||||||
Evas_Object *it_obj = NULL;
|
Evas_Object *it_obj = NULL;
|
||||||
|
|
||||||
list = evas_object_box_children_get(sd->bx);
|
children_list = evas_object_box_children_get(sd->bx);
|
||||||
if (reverse)
|
if (reverse)
|
||||||
list = eina_list_reverse(list);
|
children_list = eina_list_reverse(children_list);
|
||||||
|
list = children_list;
|
||||||
if (sd->focused_item)
|
if (sd->focused_item)
|
||||||
{
|
{
|
||||||
ELM_TOOLBAR_ITEM_DATA_GET(sd->focused_item, focus_it);
|
ELM_TOOLBAR_ITEM_DATA_GET(sd->focused_item, focus_it);
|
||||||
|
@ -812,6 +814,7 @@ _focus_next_item_get(Evas_Object *obj, Eina_Bool reverse)
|
||||||
if (it_obj) it = evas_object_data_get(it_obj, "item");
|
if (it_obj) it = evas_object_data_get(it_obj, "item");
|
||||||
else it = NULL;
|
else it = NULL;
|
||||||
}
|
}
|
||||||
|
eina_list_free(children_list);
|
||||||
|
|
||||||
return it;
|
return it;
|
||||||
}
|
}
|
||||||
|
@ -1062,6 +1065,7 @@ _item_select(Elm_Toolbar_Item_Data *it)
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
Eina_Bool sel;
|
Eina_Bool sel;
|
||||||
Eina_Bool tmp;
|
Eina_Bool tmp;
|
||||||
|
Eina_List *list;
|
||||||
|
|
||||||
ELM_TOOLBAR_DATA_GET(WIDGET(it), sd);
|
ELM_TOOLBAR_DATA_GET(WIDGET(it), sd);
|
||||||
|
|
||||||
|
@ -1098,12 +1102,14 @@ _item_select(Elm_Toolbar_Item_Data *it)
|
||||||
{
|
{
|
||||||
if (sd->more_item == it)
|
if (sd->more_item == it)
|
||||||
{
|
{
|
||||||
if (!evas_object_box_children_get(sd->bx_more2))
|
list = evas_object_box_children_get(sd->bx_more2);
|
||||||
|
if (!list)
|
||||||
elm_layout_signal_emit
|
elm_layout_signal_emit
|
||||||
(sd->more, "elm,state,open", "elm");
|
(sd->more, "elm,state,open", "elm");
|
||||||
else
|
else
|
||||||
elm_layout_signal_emit
|
elm_layout_signal_emit
|
||||||
(sd->more, "elm,state,open2", "elm");
|
(sd->more, "elm,state,open2", "elm");
|
||||||
|
eina_list_free(list);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1899,6 +1905,7 @@ _animate_missed_items(Elm_Toolbar_Item_Data *prev, Elm_Toolbar_Item_Data *next)
|
||||||
else
|
else
|
||||||
l = eina_list_prev(l);
|
l = eina_list_prev(l);
|
||||||
}
|
}
|
||||||
|
eina_list_free(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2799,6 +2806,7 @@ _access_item_find_append(const Evas_Object *obj,
|
||||||
if (eina_list_data_find(list, it->base->view))
|
if (eina_list_data_find(list, it->base->view))
|
||||||
items = eina_list_append(items, it->base->access_obj);
|
items = eina_list_append(items, it->base->access_obj);
|
||||||
}
|
}
|
||||||
|
eina_list_free(list);
|
||||||
|
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
@ -2815,6 +2823,7 @@ EOLIAN static Eina_Bool
|
||||||
_elm_toolbar_elm_widget_focus_next(Eo *obj, Elm_Toolbar_Data *sd, Elm_Focus_Direction dir, Evas_Object **next)
|
_elm_toolbar_elm_widget_focus_next(Eo *obj, Elm_Toolbar_Data *sd, Elm_Focus_Direction dir, Evas_Object **next)
|
||||||
{
|
{
|
||||||
Eina_List *items = NULL;
|
Eina_List *items = NULL;
|
||||||
|
Eina_List *list;
|
||||||
|
|
||||||
if (sd->more_item && sd->more_item->selected)
|
if (sd->more_item && sd->more_item->selected)
|
||||||
{
|
{
|
||||||
|
@ -2825,10 +2834,10 @@ _elm_toolbar_elm_widget_focus_next(Eo *obj, Elm_Toolbar_Data *sd, Elm_Focus_Dire
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
items = _access_item_find_append(obj, sd->bx, items);
|
items = _access_item_find_append(obj, sd->bx, items);
|
||||||
if (sd->more_item &&
|
list = evas_object_box_children_get(sd->bx);
|
||||||
eina_list_data_find(evas_object_box_children_get(sd->bx),
|
if (sd->more_item && eina_list_data_find(list, sd->more_item->base->view))
|
||||||
sd->more_item->base->view))
|
|
||||||
items = eina_list_append(items, sd->more_item->base->access_obj);
|
items = eina_list_append(items, sd->more_item->base->access_obj);
|
||||||
|
eina_list_free(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
return elm_widget_focus_list_next_get
|
return elm_widget_focus_list_next_get
|
||||||
|
|
Loading…
Reference in New Issue