cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=47ac8689f1372639f410a2e2f612c62db612d143
commit 47ac8689f1372639f410a2e2f612c62db612d143 Author: Lauro Moura <[email protected]> Date: Thu Mar 15 22:07:18 2018 -0700 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 <[email protected]> --- src/lib/eo/eo_base_class.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 10471541d9..5fd47c4689 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -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; } --
