From c5266725d42aa5fe208be7b1b7ebfcadee4df146 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Sun, 21 Apr 2024 20:33:12 +0200 Subject: [PATCH] Revert "loader/svg: Skip to invalid polygon" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 75e587a9a9b8becbedc6f1ccacd88da95be1ccb4. If incorrect data for the points in a polygon is provided, the element should still be rendered, but only up to the point where the error occurs—using an even number of the points that have been successfully loaded. --- src/loaders/svg/tvgSvgLoader.cpp | 6 +----- src/loaders/svg/tvgXmlParser.cpp | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index e1ad339c..976646dd 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1726,10 +1726,6 @@ static bool _attrParsePolygonPoints(const char* str, SvgPolygonNode* polygon) { float num; while (_parseNumber(&str, nullptr, &num)) polygon->pts.push(num); - if (polygon->pts.count % 2 != 0) { - polygon->pts.clear(); - return false; - } return true; } @@ -1772,7 +1768,7 @@ static SvgNode* _createPolygonNode(SvgLoaderData* loader, SvgNode* parent, const if (!loader->svgParse->node) return nullptr; - if (!func(buf, bufLength, _attrParsePolygonNode, loader)) return nullptr; + func(buf, bufLength, _attrParsePolygonNode, loader); return loader->svgParse->node; } diff --git a/src/loaders/svg/tvgXmlParser.cpp b/src/loaders/svg/tvgXmlParser.cpp index e266ef5b..09fc8aaa 100644 --- a/src/loaders/svg/tvgXmlParser.cpp +++ b/src/loaders/svg/tvgXmlParser.cpp @@ -358,7 +358,6 @@ bool simpleXmlParseAttributes(const char* buf, unsigned bufLength, simpleXMLAttr if (!func((void*)data, tmpBuf, tval)) { if (!_isIgnoreUnsupportedLogAttributes(tmpBuf, tval)) { TVGLOG("SVG", "Unsupported attributes used [Elements type: %s][Id : %s][Attribute: %s][Value: %s]", simpleXmlNodeTypeToString(((SvgLoaderData*)data)->svgParse->node->type), ((SvgLoaderData*)data)->svgParse->node->id ? ((SvgLoaderData*)data)->svgParse->node->id : "NO_ID", tmpBuf, tval ? tval : "NONE"); - goto error; } } }