From 7aff0262766df1f7b4ebc3971c8ff0dd5fab8d3e Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 2 Sep 2020 16:05:06 +0900 Subject: [PATCH] SvgLoader: Defs type nodes are not saved in loader's node list. If there is an empty (unused) inside the svg file, this can cause problems. node is managed separately in loader->def. So it doesn't have to be added to loader's list. --- src/loaders/svg/tvgSvgLoader.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 6367fc41..d6334f52 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1955,11 +1955,12 @@ static void _svgLoaderParserXmlOpen(SvgLoaderData* loader, const char* content, if (loader->stack.cnt > 0) parent = loader->stack.list[loader->stack.cnt - 1]; node = method(loader, parent, attrs, attrsLength); } - loader->stack.push(node); if (node->type == SvgNodeType::Defs) { loader->doc->node.doc.defs = node; loader->def = node; + } else { + loader->stack.push(node); } } else if ((method = _findGraphicsFactory(tagName))) { parent = loader->stack.list[loader->stack.cnt - 1]; @@ -2389,4 +2390,4 @@ unique_ptr SvgLoader::data() if (task) task->get(); if (root) return move(root); else return nullptr; -} \ No newline at end of file +}