FRom daniel zaoui -> spotted issues with callback deletionon evas_free

that may cause evas's to not be freed. fixxxxors!



SVN revision: 71552
This commit is contained in:
Carsten Haitzler 2012-05-30 10:41:19 +00:00
parent 3f662e32a7
commit 0ccd4cdf2a
3 changed files with 3 additions and 17 deletions

View File

@ -35,3 +35,4 @@ Rafal Krypa <r.krypa@samsung.com>
Hyoyoung Chang <hyoyoung@gmail.com>
Jérôme Pinot <ngc891@gmail.com>
Rafael Antognolli <antognolli@profusion.mobi>
Daniel Zaoui <daniel.zaoui@samsung.com>

View File

@ -37,7 +37,6 @@ _evas_post_event_callback_free(Evas *e)
{
EVAS_MEMPOOL_FREE(_mp_pc, pc);
}
_evas_unwalk(e);
}
void

View File

@ -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++;