From 55a5b9492b4c23ef84d2a305f05ed4e18c28c7d1 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 1 Jul 2021 18:01:29 +0900 Subject: [PATCH] Revert "svg_loader SvgPath: Added corner case handling for flags of Arc" This reverts commit 5da4c8113803de9068aa7a1c495b7bddfc530cf4. Please double-check this regression bug: examples/images/samsung-galaxy-s.svg --- src/loaders/svg/tvgSvgPath.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/loaders/svg/tvgSvgPath.cpp b/src/loaders/svg/tvgSvgPath.cpp index 0f219731..d1bd3a69 100644 --- a/src/loaders/svg/tvgSvgPath.cpp +++ b/src/loaders/svg/tvgSvgPath.cpp @@ -57,15 +57,16 @@ static bool _parseNumber(char** content, float* number) static bool _parseFlag(char** content, int* number) { - if (*(*content) != '0' && *(*content) != '1') return false; - *number = *(*content) - '0'; - *content = _skipComma(*content + 1); - if (*(*content) == '.') return false; - + char* end = NULL; + *number = strtol(*content, &end, 10); + //If the start of string is not number or a number was a float + if ((*content) == end || *end == '.') return false; + //If a flag has a different value than 0 or 1 + if (*number != 0 && *number != 1) return false; + *content = _skipComma(end); return true; } - void _pathAppendArcTo(Array* cmds, Array* pts, Point* cur, Point* curCtl, float x, float y, float rx, float ry, float angle, bool largeArc, bool sweep) { float cxp, cyp, cx, cy;