summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <chuneon.park@samsung.com>2020-05-26 16:08:30 +0900
committerHermet Park <chuneon.park@samsung.com>2020-05-26 16:21:24 +0900
commit532e8056c60188212e468e0ec68514b840366ee3 (patch)
treee64489e1ffe98f3167afeaabe6186da9e715bd8c
parent461a709e7f81fb8b3daa8d9ece521d892356987b (diff)
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
-rw-r--r--src/lib/edje/edje_calc.c7
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_object.c1
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
3332 root = efl_duplicate(src_root); 3332 root = efl_duplicate(src_root);
3333 3333
3334 if (!efl_gfx_path_interpolate(root, src_root, dest_root, pos)) 3334 if (!efl_gfx_path_interpolate(root, src_root, dest_root, pos))
3335 { 3335 ERR("Can't interpolate check the svg file");
3336 ERR("Can't interpolate check the svg file"); 3336
3337 }
3338 efl_canvas_vg_object_root_node_set(ep->object, root); 3337 efl_canvas_vg_object_root_node_set(ep->object, root);
3338
3339 efl_unref(root);
3339 efl_unref(src_root); 3340 efl_unref(src_root);
3340 efl_unref(dest_root); 3341 efl_unref(dest_root);
3341 } 3342 }
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
349 { 349 {
350 Vg_User_Entry *user_entry = pd->user_entry; 350 Vg_User_Entry *user_entry = pd->user_entry;
351 ENFN->ector_surface_cache_drop(ENC, user_entry->root); 351 ENFN->ector_surface_cache_drop(ENC, user_entry->root);
352 if (pd->user_entry->root) efl_unref(pd->user_entry->root);
352 free(pd->user_entry); 353 free(pd->user_entry);
353 } 354 }
354 pd->user_entry = NULL; 355 pd->user_entry = NULL;