hermet pushed a commit to branch master.

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

commit 532e8056c60188212e468e0ec68514b840366ee3
Author: Hermet Park <[email protected]>
Date:   Tue May 26 16:08:30 2020 +0900

    canvas vg: fix dangling vector containers.
    
    These duplicated containers are not going removed
    since its refernece is always more than 0.
    
    We need to unref explicity when they have to
    
    @fix
---
 src/lib/edje/edje_calc.c                   | 7 ++++---
 src/lib/evas/canvas/efl_canvas_vg_object.c | 1 +
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index f9a6675627..d07b5bf81f 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -3332,10 +3332,11 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, 
Edje_Calc_Params *p3 EIN
         root = efl_duplicate(src_root);
 
         if (!efl_gfx_path_interpolate(root, src_root, dest_root, pos))
-          {
-             ERR("Can't interpolate check the svg file");
-          }
+          ERR("Can't interpolate check the svg file");
+
         efl_canvas_vg_object_root_node_set(ep->object, root);
+
+        efl_unref(root);
         efl_unref(src_root);
         efl_unref(dest_root);
      }
diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c 
b/src/lib/evas/canvas/efl_canvas_vg_object.c
index bd43b7c0de..3a3ba1c346 100644
--- a/src/lib/evas/canvas/efl_canvas_vg_object.c
+++ b/src/lib/evas/canvas/efl_canvas_vg_object.c
@@ -349,6 +349,7 @@ _efl_canvas_vg_object_efl_object_invalidate(Eo *eo_obj, 
Efl_Canvas_Vg_Object_Dat
      {
         Vg_User_Entry *user_entry = pd->user_entry;
         ENFN->ector_surface_cache_drop(ENC, user_entry->root);
+        if (pd->user_entry->root) efl_unref(pd->user_entry->root);
         free(pd->user_entry);
      }
    pd->user_entry = NULL;

-- 


Reply via email to