diff options
author | Tom Hacohen <tom@stosb.com> | 2015-08-26 14:17:26 +0100 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2015-08-26 14:17:28 +0100 |
commit | d6b18c1e25152ddce179b382fa809c2440eb864a (patch) | |
tree | 0786bd1976f572f988fe424b32a2e5c444e375e4 | |
parent | acc158a2bfb2f1f1edc587386d7f0ac5ed456e20 (diff) | |
download | efl-d6b18c1e25152ddce179b382fa809c2440eb864a.tar.gz |
Eo base: print an error when an object with a parent is destructed.
This should not happen. Objects with parents must have their parents
unset before they reach refcount == 0. That's because the parent is the
one holding the refcount. This means that if we get to the destructor
(object is deleted) while a parent is still set, we have an error
scenario.
-rw-r--r-- | src/lib/eo/eo_base_class.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index bbdf426ee7..77a4bf1005 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -993,9 +993,7 @@ _eo_base_destructor(Eo *obj, Eo_Base_Data *pd) if (pd->parent) { - /* If we have a parent still at the time of destruction, it means that - * ref was already (arguably erroneously unrefed) so we need to ref - * before it gets unrefed again. */ + ERR("Object '%p' still has a parent at the time of destruction.", obj); eo_ref(obj); eo_do(obj, eo_parent_set(NULL)); } |