From a76e297b30686557de1a773ba9752b23b9700b13 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 19 Feb 2013 18:05:10 +0100 Subject: Fix QQuickTimeLine::accel() & accelDistance() Do not compare real numbers (velocities, accelerations and distances) to 0.0f, but use qFuzzyIsNull() and qIsNaN(). Task-number: QTBUG-29144 Change-Id: I8fe7ebfbc9f665fa2507e66344d081ef2f43b181 Reviewed-by: Alan Alpert Reviewed-by: Frederik Gladhorn --- src/quick/util/qquicktimeline.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/quick/util/qquicktimeline.cpp b/src/quick/util/qquicktimeline.cpp index a3a9220f03..f1d7e19dc2 100644 --- a/src/quick/util/qquicktimeline.cpp +++ b/src/quick/util/qquicktimeline.cpp @@ -49,6 +49,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -386,7 +387,7 @@ void QQuickTimeLine::set(QQuickTimeLineValue &timeLineValue, qreal value) */ int QQuickTimeLine::accel(QQuickTimeLineValue &timeLineValue, qreal velocity, qreal acceleration) { - if (acceleration == 0.0f) + if (qFuzzyIsNull(acceleration) || qIsNaN(acceleration)) return -1; if ((velocity > 0.0f) == (acceleration > 0.0f)) @@ -412,7 +413,7 @@ int QQuickTimeLine::accel(QQuickTimeLineValue &timeLineValue, qreal velocity, qr */ int QQuickTimeLine::accel(QQuickTimeLineValue &timeLineValue, qreal velocity, qreal acceleration, qreal maxDistance) { - if (maxDistance == 0.0f || acceleration == 0.0f) + if (qFuzzyIsNull(maxDistance) || qIsNaN(maxDistance) || qFuzzyIsNull(acceleration) || qIsNaN(acceleration)) return -1; Q_ASSERT(acceleration > 0.0f && maxDistance > 0.0f); @@ -441,7 +442,7 @@ int QQuickTimeLine::accel(QQuickTimeLineValue &timeLineValue, qreal velocity, qr */ int QQuickTimeLine::accelDistance(QQuickTimeLineValue &timeLineValue, qreal velocity, qreal distance) { - if (distance == 0.0f || velocity == 0.0f) + if (qFuzzyIsNull(distance) || qIsNaN(distance) || qFuzzyIsNull(velocity) || qIsNaN(velocity)) return -1; Q_ASSERT((distance >= 0.0f) == (velocity >= 0.0f)); -- cgit v1.2.3