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;
 }
 

-- 


Reply via email to