evas_vg: Fixed possible memory leak in svg loader. 66/256966/4
authorMichal Szczecinski <m.szczecinsk@partner.samsung.com>
Thu, 15 Apr 2021 16:33:21 +0000 (18:33 +0200)
committerHermet Park <chuneon.park@samsung.com>
Mon, 19 Apr 2021 07:57:23 +0000 (07:57 +0000)
Memory leak was caused by SVG's which mask nodes. In case of mask it was
not added to parent, and because of that it was not relased when parent
node was destroyed.

Change-Id: I5b443c8f31be0626660cc6b8add13933c42b4e39

src/modules/evas/vg_loaders/svg/evas_vg_load_svg.c

index 77058b9..bf798f5 100644 (file)
@@ -1145,10 +1145,9 @@ _create_switch_node(Evas_SVG_Loader *loader EINA_UNUSED, Svg_Node *parent EINA_U
 }
 
 static Svg_Node *
-_create_mask_node(Evas_SVG_Loader *loader EINA_UNUSED, Svg_Node *parent EINA_UNUSED, const char *buf EINA_UNUSED, unsigned buflen EINA_UNUSED)
+_create_mask_node(Evas_SVG_Loader *loader EINA_UNUSED, Svg_Node *parent, const char *buf EINA_UNUSED, unsigned buflen EINA_UNUSED)
 {
-   Svg_Node *node = _create_node(NULL, SVG_NODE_UNKNOWN);
-
+   Svg_Node *node = _create_node(parent, SVG_NODE_UNKNOWN);
    node->display = EINA_FALSE;
    return node;
 }