From fe1aeb3057b90eb10c478b72fd9f886ce65e1b85 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 4 Aug 2023 12:26:02 +0200 Subject: [PATCH] EasingCurve: Avoid iterating double Iterate int instead. Store the x() value of QPointF, instead of storing the whold QPointF instance. Change-Id: I8c19eaa81cd60c4a164392afd5429ad9a2d222bd Reviewed-by: hjk Reviewed-by: Reviewed-by: Knud Dollereder Reviewed-by: Alessandro Portale Reviewed-by: Qt CI Bot --- .../components/timelineeditor/easingcurve.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/components/timelineeditor/easingcurve.cpp b/src/plugins/qmldesigner/components/timelineeditor/easingcurve.cpp index ae9833e46ec..133beaae154 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/easingcurve.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/easingcurve.cpp @@ -65,15 +65,14 @@ int EasingCurve::segmentCount() const bool EasingCurve::isLegal() const { QPainterPath painterPath(path()); - - double increment = 1.0 / 30.0; - QPointF max = painterPath.pointAtPercent(0.0); - for (double i = increment; i <= 1.0; i += increment) { - QPointF current = painterPath.pointAtPercent(i); - if (current.x() < max.x()) + qreal maxX = painterPath.pointAtPercent(0.0).x(); + const int denominator = 30; + for (int i = 1; i <= denominator; ++i) { + const qreal currentX = painterPath.pointAtPercent(qreal(i) / denominator).x(); + if (currentX < maxX) return false; else - max = current; + maxX = currentX; } return true; }