From 47d71b3a0670a61069a5adc444984afbbdc436aa Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Wed, 17 Oct 2018 14:08:32 +0900 Subject: [PATCH] evas vg: fix memory leak at gradient. Summary: free memory properly when object is deleted. @fix Reviewers: #committers, devilhorns Reviewed By: #committers, devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7165 Change-Id: I8b811cfcc8a737ea8bae17cdf82099743123a444 --- src/lib/evas/canvas/efl_canvas_vg_gradient.eo | 1 + src/lib/evas/canvas/evas_vg_gradient.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_vg_gradient.eo b/src/lib/evas/canvas/efl_canvas_vg_gradient.eo index 944b5f2..76502c8 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_gradient.eo +++ b/src/lib/evas/canvas/efl_canvas_vg_gradient.eo @@ -7,5 +7,6 @@ abstract Efl.Canvas.Vg.Gradient (Efl.Canvas.Vg.Node, Efl.Gfx.Gradient) Efl.Gfx.Gradient.spread { get; set; } Efl.Gfx.Path.interpolate; Efl.Duplicate.duplicate; + Efl.Object.destructor; } } diff --git a/src/lib/evas/canvas/evas_vg_gradient.c b/src/lib/evas/canvas/evas_vg_gradient.c index b55f3c3..888c478 100644 --- a/src/lib/evas/canvas/evas_vg_gradient.c +++ b/src/lib/evas/canvas/evas_vg_gradient.c @@ -96,6 +96,15 @@ _efl_canvas_vg_gradient_efl_gfx_path_interpolate(Eo *obj, return EINA_TRUE; } +static void +_efl_canvas_vg_gradient_efl_object_destructor(Eo *obj, Efl_Canvas_Vg_Gradient_Data *pd) +{ + if (pd->colors) free(pd->colors); + + efl_destructor(efl_super(obj, MY_CLASS)); +} + + EOLIAN static Efl_VG * _efl_canvas_vg_gradient_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Gradient_Data *pd) -- 2.7.4