From b711d005ad5370709693bb4b5fa128d4f31ee7b3 Mon Sep 17 00:00:00 2001 From: raster Date: Wed, 30 May 2012 10:41:19 +0000 Subject: [PATCH] FRom daniel zaoui -> spotted issues with callback deletionon evas_free that may cause evas's to not be freed. fixxxxors! git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@71552 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- AUTHORS | 1 + src/lib/canvas/evas_callbacks.c | 1 - src/lib/canvas/evas_main.c | 18 ++---------------- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9cad460..82f644e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -35,3 +35,4 @@ Rafal Krypa Hyoyoung Chang Jérôme Pinot Rafael Antognolli +Daniel Zaoui diff --git a/src/lib/canvas/evas_callbacks.c b/src/lib/canvas/evas_callbacks.c index 47cfb0c..1be0e92 100644 --- a/src/lib/canvas/evas_callbacks.c +++ b/src/lib/canvas/evas_callbacks.c @@ -37,7 +37,6 @@ _evas_post_event_callback_free(Evas *e) { EVAS_MEMPOOL_FREE(_mp_pc, pc); } - _evas_unwalk(e); } void diff --git a/src/lib/canvas/evas_main.c b/src/lib/canvas/evas_main.c index 271ccd7..6f6b4e1 100644 --- a/src/lib/canvas/evas_main.c +++ b/src/lib/canvas/evas_main.c @@ -159,24 +159,10 @@ evas_free(Evas *e) return; MAGIC_CHECK_END(); - if (e->walking_list == 0) evas_render_idle_flush(e); - if (e->walking_list > 0) return; + evas_render_idle_flush(e); - if (e->callbacks) - { - if (e->callbacks->deletions_waiting) return; - - e->callbacks->deletions_waiting = 0; - evas_event_callback_list_post_free(&e->callbacks->callbacks); - if (!e->callbacks->callbacks) - { - free(e->callbacks); - e->callbacks = NULL; - } - - _evas_post_event_callback_free(e); - } + _evas_post_event_callback_free(e); del = 1; e->walking_list++; -- 2.7.4