From 6fc9820d2a3f349f04a2ea9c39261de0168d2331 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Wed, 21 Dec 2011 11:33:56 +0100 Subject: Change QTimerInfo (UNIX) to keep the interval in milliseconds. The API passes the interval as an int, there's no reason to convert it to a timeval struct. This also prepares for changing the UNIX timer code to support the different timer types. Author: Thiago Macieira Change-Id: Ie3cc1ae8f1be6a9ad3f1766051642cbf3e614418 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qtimerinfo_unix.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/corelib/kernel/qtimerinfo_unix.cpp') diff --git a/src/corelib/kernel/qtimerinfo_unix.cpp b/src/corelib/kernel/qtimerinfo_unix.cpp index 8a0c6c5ac2..568f789700 100644 --- a/src/corelib/kernel/qtimerinfo_unix.cpp +++ b/src/corelib/kernel/qtimerinfo_unix.cpp @@ -185,6 +185,19 @@ void QTimerInfoList::timerRepair(const timeval &diff) } } +inline timeval &operator+=(timeval &t1, int ms) +{ + t1.tv_sec += ms / 1000; + t1.tv_usec += ms % 1000 * 1000; + return normalizedTimeval(t1); +} + +inline timeval operator+(const timeval &t1, int ms) +{ + timeval t2 = t1; + return t2 += ms; +} + static timeval roundToMillisecond(timeval val) { // always round up @@ -232,9 +245,8 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time { QTimerInfo *t = new QTimerInfo; t->id = timerId; + t->interval = interval; t->timerType = timerType; - t->interval.tv_sec = interval / 1000; - t->interval.tv_usec = (interval % 1000) * 1000; t->timeout = updateCurrentTime() + t->interval; t->obj = object; t->activateRef = 0; @@ -299,7 +311,7 @@ QList QTimerInfoList::registeredTimers(QObj for (int i = 0; i < count(); ++i) { register const QTimerInfo * const t = at(i); if (t->obj == object) - list << QAbstractEventDispatcher::TimerInfo(t->id, t->interval.tv_sec * 1000 + t->interval.tv_usec / 1000, t->timerType); + list << QAbstractEventDispatcher::TimerInfo(t->id, t->interval, t->timerType); } return list; } @@ -355,7 +367,7 @@ int QTimerInfoList::activateTimers() // reinsert timer timerInsert(currentTimerInfo); - if (currentTimerInfo->interval.tv_usec > 0 || currentTimerInfo->interval.tv_sec > 0) + if (currentTimerInfo->interval > 0) n_act++; if (!currentTimerInfo->activateRef) { -- cgit v1.2.3