From: Nicholas Guriev Date: Fri, 28 May 2021 12:33:22 +0000 (+0300) Subject: Finite loop in VBezier::tAtLength() X-Git-Tag: submit/tizen/20220408.011942~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ebb14d9bd3aa98405f079277f33447bdf49aaeb0;p=platform%2Fcore%2Fuifw%2Flottie-player.git Finite loop in VBezier::tAtLength() Change-Id: I47205f80830d273ac395488f23200fefa1f86d5b Signed-off-by: jykeon --- diff --git a/src/vector/vbezier.cpp b/src/vector/vbezier.cpp index 797d564..1588929 100644 --- a/src/vector/vbezier.cpp +++ b/src/vector/vbezier.cpp @@ -81,12 +81,12 @@ float VBezier::tAtLength(float l, float totalLength) const t *= 0.5; float lastBigger = 1.0; - while (1) { + for (int num = 0; num < 100500; num++) { VBezier right = *this; VBezier left; right.parameterSplitLeft(t, &left); float lLen = left.length(); - if (fabs(lLen - l) < error) break; + if (fabs(lLen - l) < error) return t; if (lLen < l) { t += (lastBigger - t) * 0.5f; @@ -95,6 +95,7 @@ float VBezier::tAtLength(float l, float totalLength) const t -= t * 0.5f; } } + vWarning << "no convergence"; return t; }