edje: fix a leak when propagating signal to GROUP part.

SVN revision: 75808
This commit is contained in:
Cedric BAIL 2012-08-29 05:50:14 +00:00
parent e629c76ecd
commit 26de40cb12
3 changed files with 6 additions and 10 deletions

View File

@ -808,6 +808,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
obj);
if (rp->part->type == EDJE_PART_TYPE_GROUP)
{
ed->groups = eina_list_append(ed->groups, _edje_fetch(child_obj));
_edje_real_part_swallow(rp, child_obj, EINA_TRUE);
_edje_subobj_register(ed, child_obj);
source = NULL;
@ -1088,6 +1089,8 @@ _edje_file_del(Edje *ed)
if (ed->obj) tev = evas_object_evas_get(ed->obj);
ed->groups = eina_list_free(ed->groups);
if (tev) evas_event_freeze(tev);
if (ed->freeze_calc)
{

View File

@ -63,16 +63,7 @@ edje_object_message_signal_process(Evas_Object *obj)
ed = _edje_fetch(obj);
if (!ed) return;
groups = eina_list_append(groups, ed);
for (i = 0; i < ed->table_parts_size; i++)
{
Edje_Real_Part *rp;
rp = ed->table_parts[i];
if (rp->part->type == EDJE_PART_TYPE_GROUP && rp->swallowed_object)
groups = eina_list_append(groups,
_edje_fetch(rp->swallowed_object));
}
groups = ed->groups;
EINA_LIST_FOREACH_SAFE(msgq, l, ln, em)
{

View File

@ -1140,6 +1140,8 @@ struct _Edje
int table_programs_size;
unsigned int table_parts_size;
Eina_List *groups;
struct {
Eina_Hash *text_class;
Eina_Hash *color_class;