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:
Tom Hacohen 2015-08-26 14:17:26 +01:00
parent acc158a2bf
commit d6b18c1e25
1 changed files with 1 additions and 3 deletions

View File

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