cedric pushed a commit to branch master.

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

commit dcfddcd283e01e36096d573af9b46f512a39272c
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Thu May 3 11:37:08 2018 -0700

    eo: make sure efl_noref is always called at the proper time.
    
    Differential Revision: https://phab.enlightenment.org/D6096
---
 src/lib/eo/eo.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index a6323d1825..558ee29202 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1891,7 +1891,8 @@ efl_unref(const Eo *obj_id)
         return ;
      }
 
-   if (EINA_UNLIKELY(obj->user_refcount == 1))
+   if (EINA_UNLIKELY((obj->user_refcount == 1 && !obj->parent) ||
+                     (obj->user_refcount == 2 && obj->parent)))
      {
         // The noref event should happen before any object in the
         // tree get affected by the change in refcount.

-- 


Reply via email to