summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhransu Mohanty <sub.mohanty@samsung.com>2015-04-03 16:38:17 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-04-03 16:38:17 +0200
commitf4d325ee78fd0de7bc0390b1755c1c29f8e728e3 (patch)
tree33112d59891cb62fb9fbb9e85de114b77ed97767
parent8d584dff34c67716dd68c87e40c09d41bd67864b (diff)
downloadefl-f4d325ee78fd0de7bc0390b1755c1c29f8e728e3.tar.gz
evas: fix memory leak in Efl.Vg.Base class.
-rw-r--r--src/lib/evas/canvas/efl_vg_base.eo1
-rw-r--r--src/lib/evas/canvas/evas_vg_node.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/efl_vg_base.eo b/src/lib/evas/canvas/efl_vg_base.eo
index e54256771e..ebd0dce3c9 100644
--- a/src/lib/evas/canvas/efl_vg_base.eo
+++ b/src/lib/evas/canvas/efl_vg_base.eo
@@ -74,6 +74,7 @@ abstract Efl.VG.Base (Eo.Base, Efl.Gfx.Base, Efl.Gfx.Stack)
implements {
Eo.Base.parent.set;
Eo.Base.constructor;
+ Eo.Base.destructor;
Efl.Gfx.Base.visible.set;
Efl.Gfx.Base.visible.get;
Efl.Gfx.Base.color.set;
diff --git a/src/lib/evas/canvas/evas_vg_node.c b/src/lib/evas/canvas/evas_vg_node.c
index 4254e5909a..6757771262 100644
--- a/src/lib/evas/canvas/evas_vg_node.c
+++ b/src/lib/evas/canvas/evas_vg_node.c
@@ -247,6 +247,17 @@ _efl_vg_base_eo_base_constructor(Eo *obj,
}
static void
+_efl_vg_base_eo_base_destructor(Eo *obj, Efl_VG_Base_Data *pd)
+{
+ if (pd->m)
+ {
+ free(pd->m);
+ pd->m = NULL;
+ }
+ eo_do_super(obj, MY_CLASS, eo_destructor());
+}
+
+static void
_efl_vg_base_eo_base_parent_set(Eo *obj,
Efl_VG_Base_Data *pd EINA_UNUSED,
Eo *parent)