evas/evas3d: discard proxy textures list properly.

this fixes evas-3d-proxy example to be exited correctly.
This commit is contained in:
ChunEon Park 2014-05-12 16:47:54 +09:00
parent 7ef3276a66
commit 97c7f36a50
1 changed files with 8 additions and 2 deletions

View File

@ -630,6 +630,7 @@ _evas_object_eo_base_destructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
MAGIC_CHECK_END();
Evas_Object *proxy;
Eina_List *l, *l2;
Evas_3D_Texture *texture;
evas_object_hide(eo_obj);
if (obj->focused)
@ -676,8 +677,13 @@ _evas_object_eo_base_destructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
eo_do(proxy, evas_obj_text_filter_source_set(NULL, eo_obj));
}
while (obj->proxy->proxy_textures)
eo_do(obj->proxy->proxy_textures->data, evas_3d_texture_source_set(NULL));
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
Evas_Object_Proxy_Data, proxy_src)
{
EINA_LIST_FREE(proxy_src->proxy_textures, texture)
eo_do(texture, evas_3d_texture_source_set(NULL));
}
EINA_COW_WRITE_END(evas_object_proxy_cow, obj->proxy, proxy_src);
if (obj->cur->clipper) evas_object_clip_unset(eo_obj);
evas_object_map_set(eo_obj, NULL);