fix weird bug where fdh in a list could become null

SVN revision: 55044
This commit is contained in:
Mike Blumenkrantz 2010-11-28 22:03:07 +00:00
parent fd44ecf46c
commit 3c05a283b6
1 changed files with 3 additions and 0 deletions

View File

@ -996,6 +996,7 @@ _ecore_main_prepare_handlers(void)
/* call the prepare callback for all handlers with prep functions */
EINA_LIST_FOREACH_SAFE(fd_handlers_with_prep, l, l2, fdh)
{
if (!fdh) fd_handlers_with_prep = eina_list_remove_list(l, fd_handlers_with_prep);
if (!fdh->delete_me && fdh->prep_func)
{
fdh->references++;
@ -1185,6 +1186,7 @@ _ecore_main_fd_handlers_cleanup(void)
if (!fd_handlers_to_delete) return;
EINA_LIST_FOREACH_SAFE(fd_handlers_to_delete, l, l2, fdh)
{
if (!fdh) fd_handlers_to_delete = eina_list_remove_list(l, fd_handlers_to_delete);
/* fdh->delete_me should be set for all fdhs at the start of the list */
if (fdh->references)
continue;
@ -1290,6 +1292,7 @@ _ecore_main_fd_handlers_buf_call(void)
ret = 0;
EINA_LIST_FOREACH_SAFE(fd_handlers_with_buffer, l, l2, fdh)
{
if (!fdh) fd_handlers_with_buffer = eina_list_remove_list(l, fd_handlers_with_buffer);
if ((!fdh->delete_me) && fdh->buf_func)
{
fdh->references++;