diff options
author | Lauro Moura <lauromoura@expertisesolutions.com.br> | 2018-03-15 22:07:18 -0700 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2018-03-15 22:10:27 -0700 |
commit | 47ac8689f1372639f410a2e2f612c62db612d143 (patch) | |
tree | 152bafcdf6db536ee0fb0f0a684ffcdd86315f5d /src/lib/eo/eo_base_class.c | |
parent | 6c0180d7f852a1399990140142f40018ebc99349 (diff) |
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>
Diffstat (limited to 'src/lib/eo/eo_base_class.c')
-rw-r--r-- | src/lib/eo/eo_base_class.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index 1047154..5fd47c4 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) | |||
2169 | } | 2169 | } |
2170 | 2170 | ||
2171 | static void | 2171 | static void |
2172 | _efl_object_invalidate(Eo *obj EINA_UNUSED, Efl_Object_Data *pd) | 2172 | _efl_object_invalidate(Eo *obj, Efl_Object_Data *pd) |
2173 | { | 2173 | { |
2174 | _efl_pending_futures_clear(pd); | 2174 | _efl_pending_futures_clear(pd); |
2175 | if (efl_parent_get(obj)) | ||
2176 | efl_parent_set(obj, NULL); | ||
2175 | pd->invalidate = EINA_TRUE; | 2177 | pd->invalidate = EINA_TRUE; |
2176 | } | 2178 | } |
2177 | 2179 | ||