From 532e8056c60188212e468e0ec68514b840366ee3 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 26 May 2020 16:08:30 +0900 Subject: [PATCH] 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;