hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=97c7f36a50d94eeac585cefb1114c19366da1eec
commit 97c7f36a50d94eeac585cefb1114c19366da1eec Author: ChunEon Park <[email protected]> Date: Mon May 12 16:47:54 2014 +0900 evas/evas3d: discard proxy textures list properly. this fixes evas-3d-proxy example to be exited correctly. --- src/lib/evas/canvas/evas_object_main.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index 15a3a4e..c4a47f3 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -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); --
