forked from enlightenment/efl
eo: Allow efl_reuse to be called with a parent
If an object still has a parent inside the del intercept, we shouldn't reset the "parent_sunk" flag. This would indeed break logic as parent_sunk == false implies that a parent was never set, which means the parent must be null. Right now this case isn't used but it can be imagined with caches of evas objects (they should remain parented to their evas). @fix
This commit is contained in:
parent
9ee741cf7f
commit
008ec97d84
|
@ -1028,13 +1028,17 @@ EAPI void
|
||||||
efl_reuse(const Eo *eo_id)
|
efl_reuse(const Eo *eo_id)
|
||||||
{
|
{
|
||||||
Eo *obj = (Eo *) eo_id;
|
Eo *obj = (Eo *) eo_id;
|
||||||
|
EO_OBJ_POINTER_RETURN(obj, _obj);
|
||||||
|
|
||||||
efl_object_override(obj, NULL);
|
efl_object_override(obj, NULL);
|
||||||
_efl_object_parent_sink_set(obj, EINA_FALSE);
|
if (!efl_parent_get(obj))
|
||||||
|
_efl_object_parent_sink_set(obj, EINA_FALSE);
|
||||||
|
|
||||||
#ifdef EO_DEBUG
|
#ifdef EO_DEBUG
|
||||||
EO_OBJ_POINTER_RETURN(eo_id, _obj);
|
|
||||||
_eo_log_obj_ref_op(_obj, EO_REF_OP_REUSE);
|
_eo_log_obj_ref_op(_obj, EO_REF_OP_REUSE);
|
||||||
EO_OBJ_DONE(eo_id);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
EO_OBJ_DONE(eo_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue