summaryrefslogtreecommitdiff
path: root/src/lib/eo/eo_base_class.c
diff options
context:
space:
mode:
authorCedric Bail <cedric@osg.samsung.com>2018-04-24 11:37:48 -0700
committerCedric BAIL <cedric@osg.samsung.com>2018-05-01 10:39:01 -0700
commite7d5d34158f6328b7eaae63b9ee7f58962fb9949 (patch)
treecf74ac4bc4fb84cc98de25ba6871ed07d8345844 /src/lib/eo/eo_base_class.c
parent473ed10c0289a5106de02695302518632ae363f8 (diff)
eo: invalidate before setting the parent to NULL.
Diffstat (limited to 'src/lib/eo/eo_base_class.c')
-rw-r--r--src/lib/eo/eo_base_class.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 453fb6a..a32bc30 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -138,6 +138,8 @@ static void
138_efl_object_invalidate(Eo *obj, Efl_Object_Data *pd) 138_efl_object_invalidate(Eo *obj, Efl_Object_Data *pd)
139{ 139{
140 _efl_pending_futures_clear(pd); 140 _efl_pending_futures_clear(pd);
141
142 if (pd->invalidate) return ;
141 efl_parent_set(obj, NULL); 143 efl_parent_set(obj, NULL);
142 pd->invalidate = EINA_TRUE; 144 pd->invalidate = EINA_TRUE;
143} 145}
@@ -713,8 +715,10 @@ _efl_object_parent_set(Eo *obj, Efl_Object_Data *pd, Eo *parent_id)
713 } 715 }
714 else 716 else
715 { 717 {
716 pd->parent = NULL; 718 pd->invalidate = EINA_TRUE;
717 if (prev_parent) _efl_invalidate(obj); 719 if (prev_parent) _efl_invalidate(obj);
720
721 pd->parent = NULL;
718 if (prev_parent && !eo_obj->del_triggered) efl_unref(obj); 722 if (prev_parent && !eo_obj->del_triggered) efl_unref(obj);
719 } 723 }
720 724