jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=94abb3a4221548002ade125d910a84c7d4a47891

commit 94abb3a4221548002ade125d910a84c7d4a47891
Author: jiin.moon <jiin.m...@samsung.com>
Date:   Tue Aug 4 11:49:04 2015 +0900

    ecore_evas: Fix crash in async render
    
    Summary:
    The root cause of the crash is freed memory.
    The evas_object_image_data_set api called with extn buffer in 
_ipc_server_data.
    But there is no inform to render when free this buffer.
    @fix
    
    Reviewers: Hermet, jpeg, jypark
    
    Subscribers: stefan_schmidt, cedric
    
    Differential Revision: https://phab.enlightenment.org/D2902
    
    Signed-off-by: Jean-Philippe Andre <jp.an...@samsung.com>
---
 src/modules/ecore_evas/engines/extn/ecore_evas_extn.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c 
b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
index 550166c..6dd16ba 100644
--- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
+++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c
@@ -178,7 +178,12 @@ _ecore_evas_extn_free(Ecore_Evas *ee)
         Ecore_Event_Handler *hdl;
         Ipc_Data_Update *ipc;
         int i;
-
+        if (bdata->image)
+          {
+             evas_object_image_data_set(bdata->image, NULL);
+             evas_object_image_pixels_dirty_set(bdata->image, EINA_TRUE);
+          }
+        bdata->pixels = NULL;
         for (i = 0; i < NBUF; i++)
           {
              if (extn->b[i].buf) _extnbuf_free(extn->b[i].buf);
@@ -229,7 +234,7 @@ _ecore_evas_extn_free(Ecore_Evas *ee)
              ee2->sub_ecore_evas = eina_list_remove(ee2->sub_ecore_evas, ee);
           }
         evas_object_del(bdata->image);
-               bdata->image = NULL;
+        bdata->image = NULL;
      }
    free(bdata);
    ee->engine.data = NULL;

-- 


Reply via email to