Go to file
Marc Mutz 8ce657d027 QAbstractItemView: don't call restart() on invalid QElapsedTimer
In keyboardSearch(), QAbstractItemView unconditionally called
QElapsedTimer::restart().

Calling restart() on an invalid QElapsedTimer is undefined
behavior:

  qelapsedtimer_unix.cpp:192:9: runtime error: signed integer overflow: 3313808 - -9223372036854775808 cannot be represented in type 'long int'
  qelapsedtimer_unix.cpp:193:10: runtime error: signed integer overflow: 534150461 - -9223372036854775808 cannot be represented in type 'long int'
  qelapsedtimer_unix.cpp:194:17: runtime error: signed integer overflow: -9223372036851462000 * 1000000000 cannot be represented in type 'long long int'

The code already checked the timer for validity, and did not
use the return value of restart() in case of an invalid timer,
but the check came too late.

Fix by checking the return value of QElapsedTimer::isValid()
earlier, and calling start() instead of restart() instead.

Fix the same error in QTreeView, which has a c'n'p copy of
the buggy code.

Change-Id: I9751465394707d9348d5c05a0b1b2be147eceb2e
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2016-04-03 11:32:11 +00:00
bin Fix syncqt.pl not respecting #pragma qt_no_master_include in files with Windows line endings 2016-02-25 16:25:37 +00:00
config.tests QNX has no libdl, but all the functions are in libc 2016-03-21 09:38:07 +00:00
dist Add changelog for 5.6.0 2016-03-01 11:23:43 +00:00
doc Merge remote-tracking branch 'origin/5.6.0' into 5.6 2016-03-17 16:02:45 +01:00
examples Merge remote-tracking branch 'origin/5.6.0' into 5.6 2016-03-17 16:02:45 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs winrt: Enable windeployqt by default for Visual Studio projects 2016-03-23 09:56:56 +00:00
qmake qmake/wince: Deploy QPA plugin as well in Visual Studio 2016-03-22 14:10:12 +00:00
src QAbstractItemView: don't call restart() on invalid QElapsedTimer 2016-04-03 11:32:11 +00:00
tests QVariant: Fix flags for type-erased associative iterator key 2016-04-03 10:58:12 +00:00
tools qmake: Fix wince dll deployment in Visual Studio 2016-03-22 14:10:03 +00:00
util Don't use QStringLiteral in comparisons 2016-01-28 18:00:47 +00:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore rewrite qtAddToolEnv() 2016-01-08 09:36:13 +00:00
.qmake.conf Bump version 2016-02-18 07:38:22 +00:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
configure configure: Appending compiler and linker flags... 2016-03-23 09:57:23 +00:00
configure.bat Move the official Qt version from qglobal.h to .qmake.conf 2015-10-14 20:12:57 +00:00
header.BSD Updated BSD licensed file headers 2015-02-15 07:41:17 +00:00
header.COMM Add header template for commercial only modules 2015-10-19 10:37:18 +00:00
header.FDL Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL3-COMM Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL21 Update copyright headers 2015-02-11 06:49:51 +00:00
header.LGPL-ONLY Update copyright headers 2015-02-11 06:49:51 +00:00
INSTALL Doc: Update links in INSTALL file 2015-02-16 09:06:41 +00:00
LGPL_EXCEPTION.txt Update copyright headers 2015-02-11 06:49:51 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPLv3 fix up license references 2015-08-13 11:13:09 +00:00
LICENSE.LGPLv3 Bump copyright year to 2016 2016-01-29 13:30:04 +00:00
LICENSE.LGPLv21 Bump copyright year to 2016 2016-01-29 13:30:04 +00:00
LICENSE.PREVIEW.COMMERCIAL Update copyright headers 2015-02-11 06:49:51 +00:00
qtbase.pro Install fixqt4headers.pl script 2015-11-14 12:46:50 +00:00
sync.profile make a proper header-only module for QtZlib 2015-11-17 20:22:17 +00:00