jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=008ec97d84aed9adca4991be4ed358a217128708

commit 008ec97d84aed9adca4991be4ed358a217128708
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Thu Sep 28 15:43:28 2017 +0900

    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
---
 src/lib/eo/eo.c | 10 +++++++---
 1 file 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

-- 


Reply via email to