evas: fix memleak during a picture duplication 10/268910/3
authorMira Grudzinska <m.grudzinska@samsung.com>
Tue, 4 Jan 2022 23:55:12 +0000 (00:55 +0100)
committerChun <jykeon@samsung.com>
Wed, 30 Mar 2022 10:03:43 +0000 (10:03 +0000)
A tvg picture is created twice - by efl and by tvg.
The object created by efl has to be deleted in order
to prevent memory the leaks.

Change-Id: I74629c8cb8ea47e476e102cefcb45ee571837856

src/lib/evas/canvas/efl_canvas_vg_image.c

index d87f591..e37a93b 100644 (file)
@@ -132,7 +132,12 @@ _efl_canvas_vg_image_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Image_
    node = efl_duplicate(efl_super(obj, MY_CLASS));
    sd = efl_data_scope_get(node, MY_CLASS);
 
-   if (pd->picture) sd->picture = tvg_paint_duplicate(pd->picture);
+   // TIZEN_ONLY(20220330): fix memleak during a picture duplication
+   if (pd->picture)
+     {
+        if (sd->picture) tvg_paint_del(sd->picture);
+        sd->picture = tvg_paint_duplicate(pd->picture);
+     }
 
    sd->image = pd->image; // note: no memcpy here
    sd->w = pd->w;