aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/eo/eo.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 49dc221aee..9a65b20985 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1028,13 +1028,17 @@ EAPI void
efl_reuse(const Eo *eo_id)
{
Eo *obj = (Eo *) eo_id;
+ EO_OBJ_POINTER_RETURN(obj, _obj);
+
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
- EO_OBJ_POINTER_RETURN(eo_id, _obj);
_eo_log_obj_ref_op(_obj, EO_REF_OP_REUSE);
- EO_OBJ_DONE(eo_id);
#endif
+
+ EO_OBJ_DONE(eo_id);
}
void