forked from enlightenment/efl
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:
parent
3f662e32a7
commit
0ccd4cdf2a
|
@ -35,3 +35,4 @@ Rafal Krypa <r.krypa@samsung.com>
|
||||||
Hyoyoung Chang <hyoyoung@gmail.com>
|
Hyoyoung Chang <hyoyoung@gmail.com>
|
||||||
Jérôme Pinot <ngc891@gmail.com>
|
Jérôme Pinot <ngc891@gmail.com>
|
||||||
Rafael Antognolli <antognolli@profusion.mobi>
|
Rafael Antognolli <antognolli@profusion.mobi>
|
||||||
|
Daniel Zaoui <daniel.zaoui@samsung.com>
|
||||||
|
|
|
@ -37,7 +37,6 @@ _evas_post_event_callback_free(Evas *e)
|
||||||
{
|
{
|
||||||
EVAS_MEMPOOL_FREE(_mp_pc, pc);
|
EVAS_MEMPOOL_FREE(_mp_pc, pc);
|
||||||
}
|
}
|
||||||
_evas_unwalk(e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -159,24 +159,10 @@ evas_free(Evas *e)
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
|
|
||||||
if (e->walking_list == 0) evas_render_idle_flush(e);
|
|
||||||
|
|
||||||
if (e->walking_list > 0) return;
|
if (e->walking_list > 0) return;
|
||||||
|
evas_render_idle_flush(e);
|
||||||
|
|
||||||
if (e->callbacks)
|
_evas_post_event_callback_free(e);
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
del = 1;
|
del = 1;
|
||||||
e->walking_list++;
|
e->walking_list++;
|
||||||
|
|
Loading…
Reference in New Issue