eo: Orphan an object that is being invalidated.

Summary:
This will avoid infinite loops and errors when the parent tries
to orphan an invalidated child.

Fixes T6780

Test Plan: Run `make check`

Reviewers: cedric

Maniphest Tasks: T6780

Differential Revision: https://phab.enlightenment.org/D5839

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
This commit is contained in:
Lauro Moura 2018-03-15 22:07:18 -07:00 committed by Cedric BAIL
parent 6c0180d7f8
commit 47ac8689f1
1 changed files with 3 additions and 1 deletions

View File

@ -2169,9 +2169,11 @@ _efl_object_finalize(Eo *obj, Efl_Object_Data *pd EINA_UNUSED)
}
static void
_efl_object_invalidate(Eo *obj EINA_UNUSED, Efl_Object_Data *pd)
_efl_object_invalidate(Eo *obj, Efl_Object_Data *pd)
{
_efl_pending_futures_clear(pd);
if (efl_parent_get(obj))
efl_parent_set(obj, NULL);
pd->invalidate = EINA_TRUE;
}