forked from enlightenment/efl
logic problem on evas_free(). shoudl be fixed now... :)
SVN revision: 6559
This commit is contained in:
parent
3f207b8c08
commit
7c80fa9a3e
|
@ -44,6 +44,20 @@ evas_layer_new(Evas *e)
|
||||||
return lay;
|
return lay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evas_layer_pre_free(Evas_Layer *lay)
|
||||||
|
{
|
||||||
|
Evas_Object_List *l;
|
||||||
|
|
||||||
|
for (l = (Evas_Object_List *)lay->objects; l; l = l->next)
|
||||||
|
{
|
||||||
|
Evas_Object *obj;
|
||||||
|
|
||||||
|
obj = (Evas_Object *)l;
|
||||||
|
evas_object_del(obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evas_layer_free(Evas_Layer *lay)
|
evas_layer_free(Evas_Layer *lay)
|
||||||
{
|
{
|
||||||
|
@ -52,7 +66,6 @@ evas_layer_free(Evas_Layer *lay)
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
|
|
||||||
obj = (Evas_Object *)lay->objects;
|
obj = (Evas_Object *)lay->objects;
|
||||||
if (obj->smart.smart) evas_object_smart_del(obj);
|
|
||||||
evas_object_free(obj, 0);
|
evas_object_free(obj, 0);
|
||||||
}
|
}
|
||||||
free(lay);
|
free(lay);
|
||||||
|
|
|
@ -72,13 +72,19 @@ evas_new(void)
|
||||||
void
|
void
|
||||||
evas_free(Evas *e)
|
evas_free(Evas *e)
|
||||||
{
|
{
|
||||||
|
Evas_Object_List *l;
|
||||||
|
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
|
|
||||||
evas_object_font_path_clear(e);
|
for (l = (Evas_Object_List *)(e->layers); l; l = l->next)
|
||||||
|
{
|
||||||
e->pointer.object.in = evas_list_free(e->pointer.object.in);
|
Evas_Layer *lay;
|
||||||
|
|
||||||
|
lay = (Evas_Layer *)l;
|
||||||
|
evas_layer_pre_free(lay);
|
||||||
|
}
|
||||||
while (e->layers)
|
while (e->layers)
|
||||||
{
|
{
|
||||||
Evas_Layer *lay;
|
Evas_Layer *lay;
|
||||||
|
@ -88,6 +94,9 @@ evas_free(Evas *e)
|
||||||
evas_layer_free(lay);
|
evas_layer_free(lay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
evas_object_font_path_clear(e);
|
||||||
|
e->pointer.object.in = evas_list_free(e->pointer.object.in);
|
||||||
|
|
||||||
if (e->name_hash) evas_hash_free(e->name_hash);
|
if (e->name_hash) evas_hash_free(e->name_hash);
|
||||||
|
|
||||||
while (e->damages)
|
while (e->damages)
|
||||||
|
|
|
@ -422,6 +422,8 @@ evas_object_del(Evas_Object *obj)
|
||||||
evas_object_change(obj);
|
evas_object_change(obj);
|
||||||
obj->delete_me = 1;
|
obj->delete_me = 1;
|
||||||
if (obj->smart.smart) evas_object_smart_del(obj);
|
if (obj->smart.smart) evas_object_smart_del(obj);
|
||||||
|
evas_object_smart_cleanup(obj);
|
||||||
|
obj->smart.smart = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -238,8 +238,8 @@ evas_object_smart_del(Evas_Object *obj)
|
||||||
Evas_Smart *s;
|
Evas_Smart *s;
|
||||||
|
|
||||||
s = obj->smart.smart;
|
s = obj->smart.smart;
|
||||||
if (obj->smart.parent) evas_object_smart_member_del(obj);
|
|
||||||
if ((s) && (s->func_del)) s->func_del(obj);
|
if ((s) && (s->func_del)) s->func_del(obj);
|
||||||
|
if (obj->smart.parent) evas_object_smart_member_del(obj);
|
||||||
if (s) evas_object_smart_unuse(s);
|
if (s) evas_object_smart_unuse(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -497,6 +497,7 @@ void evas_object_render_pre_effect_updates(Evas_List *updates, Evas_Object *obj,
|
||||||
Evas_List * evas_rects_return_difference_rects(int x, int y, int w, int h, int xx, int yy, int ww, int hh);
|
Evas_List * evas_rects_return_difference_rects(int x, int y, int w, int h, int xx, int yy, int ww, int hh);
|
||||||
void evas_object_clip_recalc(Evas_Object *obj);
|
void evas_object_clip_recalc(Evas_Object *obj);
|
||||||
Evas_Layer *evas_layer_new(Evas *e);
|
Evas_Layer *evas_layer_new(Evas *e);
|
||||||
|
void evas_layer_pre_free(Evas_Layer *lay);
|
||||||
void evas_layer_free(Evas_Layer *lay);
|
void evas_layer_free(Evas_Layer *lay);
|
||||||
Evas_Layer *evas_layer_find(Evas *e, int layer_num);
|
Evas_Layer *evas_layer_find(Evas *e, int layer_num);
|
||||||
void evas_layer_add(Evas_Layer *lay);
|
void evas_layer_add(Evas_Layer *lay);
|
||||||
|
|
Loading…
Reference in New Issue