svg_loader: correct polygon's points loading

Only an even number of correctly read points defining
a polygon should be loaded and passed on for rendering.
Any remaining points should be ignored.
This commit is contained in:
Mira Grudzinska 2024-04-21 20:36:09 +02:00 committed by Hermet Park
parent 2cb89c71a1
commit 8d81ad360f

View file

@ -1724,8 +1724,11 @@ static SvgNode* _createEllipseNode(SvgLoaderData* loader, SvgNode* parent, const
static bool _attrParsePolygonPoints(const char* str, SvgPolygonNode* polygon) static bool _attrParsePolygonPoints(const char* str, SvgPolygonNode* polygon)
{ {
float num; float num_x, num_y;
while (_parseNumber(&str, nullptr, &num)) polygon->pts.push(num); while (_parseNumber(&str, nullptr, &num_x) && _parseNumber(&str, nullptr, &num_y)) {
polygon->pts.push(num_x);
polygon->pts.push(num_y);
}
return true; return true;
} }