summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhransu Mohanty <smohantty@gmail.com>2020-06-01 18:53:36 +0900
committerStefan Schmidt <s.schmidt@samsung.com>2020-06-15 15:38:00 +0200
commit5d19a932e838e4adda682bdab2f424f7d876f880 (patch)
tree04461952037de684b00cd6c858e2eb8ea8db300a
parenta111e9702cfb4699f753a08a43d43c977948715f (diff)
downloadefl-5d19a932e838e4adda682bdab2f424f7d876f880.tar.gz
svg/loader: Fix memory leak
Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11908
-rw-r--r--src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c5
-rw-r--r--src/static_libs/vg_common/vg_common_svg.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c
index 313d3eed15..9151e05c15 100644
--- a/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c
+++ b/src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c
@@ -2410,6 +2410,7 @@ static Eina_Bool
evas_vg_load_file_close_svg(Vg_File_Data *vfd)
{
if (vfd->root) efl_unref(vfd->root);
+ free(vfd);
return EINA_TRUE;
}
@@ -2462,7 +2463,9 @@ evas_vg_load_file_open_svg(Eina_File *file,
}
free(loader.svg_parse);
- return vg_common_svg_create_vg_node(loader.doc);
+ Vg_File_Data* result = vg_common_svg_create_vg_node(loader.doc);
+ vg_common_svg_node_free(loader.doc);
+ return result;
}
static Evas_Vg_Load_Func evas_vg_load_svg_func =
diff --git a/src/static_libs/vg_common/vg_common_svg.c b/src/static_libs/vg_common/vg_common_svg.c
index de5477bb0e..058cdf99e0 100644
--- a/src/static_libs/vg_common/vg_common_svg.c
+++ b/src/static_libs/vg_common/vg_common_svg.c
@@ -536,12 +536,14 @@ vg_common_svg_node_free(Svg_Node *node)
{
_svg_style_gradient_free(grad);
}
+ case SVG_NODE_CUSTOME_COMMAND:
+ if (node->node.command.commands) free(node->node.command.commands);
+ if (node->node.command.points) free(node->node.command.points);
break;
default:
break;
}
- if (node->node.command.commands_count > 0) free(node->node.command.commands);
- if (node->node.command.points_count > 0) free(node->node.command.points);
+
free(node);
}