From a1d3383a380531e09e994c94f13820504e6a56db Mon Sep 17 00:00:00 2001 From: Frantisek Vacek Date: Fri, 12 Oct 2012 14:31:59 +0200 Subject: QPerformanceTimer: fixed wrong implementation of elapsedToAbsoluteTime() Function elapsedToAbsoluteTime() had wrong implementation on MAC and WIN platforms. Change-Id: Icc11e85bcd562cce42af902749883b433a1fcb0b Reviewed-by: Christiaan Janssen --- src/declarative/qml/qperformancetimer.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/declarative/qml/qperformancetimer.cpp b/src/declarative/qml/qperformancetimer.cpp index 9e2e0734..c818a8b1 100644 --- a/src/declarative/qml/qperformancetimer.cpp +++ b/src/declarative/qml/qperformancetimer.cpp @@ -76,15 +76,16 @@ void QPerformanceTimer::start() qint64 QPerformanceTimer::elapsed() const { - uint64_t cpu_time = mach_absolute_time(); + qint64 cpu_time = mach_absolute_time(); return absoluteToNSecs(cpu_time - t1); } // return number of nsecs elapsed from timer start time till absoluteMonotonicTimeNs +// elapsedToAbsoluteTime(0) returns negative value of absolute time (ns) when the timer was started qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const { - uint64_t cpu_time = absoluteMonotonicTimeNs; - return absoluteToNSecs(cpu_time - t1); + qint64 absolute_t1_ns = absoluteToNSecs(t1); + return absoluteMonotonicTimeNs - absolute_t1_ns; } ////////////////////////////// Unix ////////////////////////////// @@ -198,7 +199,8 @@ qint64 QPerformanceTimer::elapsed() const qint64 QPerformanceTimer::elapsedToAbsoluteTime(qint64 absoluteMonotonicTimeNs) const { - return absoluteMonotonicTimeNs - t1; + qint64 absolute_t1_ns = getTimeFromTick(t1); + return absoluteMonotonicTimeNs - absolute_t1_ns; } ////////////////////////////// Default ////////////////////////////// -- cgit v1.2.3