From 0ccd4cdf2afa879b696b97e424f1600641d9a518 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler 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! SVN revision: 71552 --- legacy/evas/AUTHORS | 1 + legacy/evas/src/lib/canvas/evas_callbacks.c | 1 - legacy/evas/src/lib/canvas/evas_main.c | 18 ++---------------- 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/legacy/evas/AUTHORS b/legacy/evas/AUTHORS index 9cad460025..82f644e6d1 100644 --- a/legacy/evas/AUTHORS +++ b/legacy/evas/AUTHORS @@ -35,3 +35,4 @@ Rafal Krypa Hyoyoung Chang Jérôme Pinot Rafael Antognolli +Daniel Zaoui diff --git a/legacy/evas/src/lib/canvas/evas_callbacks.c b/legacy/evas/src/lib/canvas/evas_callbacks.c index 47cfb0c4e4..1be0e92c95 100644 --- a/legacy/evas/src/lib/canvas/evas_callbacks.c +++ b/legacy/evas/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/legacy/evas/src/lib/canvas/evas_main.c b/legacy/evas/src/lib/canvas/evas_main.c index 271ccd7d9c..6f6b4e12a9 100644 --- a/legacy/evas/src/lib/canvas/evas_main.c +++ b/legacy/evas/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++;