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);

-- 


Reply via email to