forked from enlightenment/efl
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.
This commit is contained in:
parent
acc158a2bf
commit
d6b18c1e25
|
@ -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));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue