qt5base-lts/tests/auto
Gabriel de Dietrich 8b9346c740 Item Views: Avoid reentrant call in updateEditorGeometries()
This may result in incrementing an invalid iterator after the
iterator's container has changed. Also, for this to happen,
the view needs to have an active editor.

The reentrant call happens as follows in QTreeView, after the
model adds new rows to the view:

    QTreeView::rowsInserted()
    QAbstractItemView::rowsInserted()
    QAbstractItemView::updateEditorGeometries()
    QTreeView::visualRect()
    QAbstractItemViewPrivate::executePostedLayout()
    QTreeView::doItemsLayout()
    QAbstractItemView::doItemsLayout()
    QTreeView::updateGeometries()
    QAbstractItemView::updateGeometries()
    QAbstractItemView::updateEditorGeometries()

Other concrete item view classes may be prone to the same issue.

The fix consists in relayouting the items if needed, which should
trigger calling updateEditorGeometries() again. This doesn't
invalidate previous optimizations regarding item relayouting since
we only force relayouting when it'll be done by visualRect().

Change-Id: Id31507fdc8d9a84d50265298191d690d1a06792b
Task-number: QTBUG-48968
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-10-27 11:58:32 +00:00
..
android Fix typo in test results report for android 2015-07-28 21:16:19 +00:00
bic/data bic: Add 5.{1,2,3,4}.0 bic data for linux-gcc-amd64 2015-02-14 06:54:20 +00:00
cmake CMake: Fix regression with quoted OPTIONS parameter 2015-03-11 07:31:33 +00:00
compilerwarnings/data Fixed license headers 2015-02-17 18:46:09 +00:00
concurrent Tests: Replace Q[TRY]_VERIFY(v == true|false) by QVERIFY(v)|QVERIFY(!v). 2015-07-27 12:09:19 +00:00
corelib Autotest: remove AIX-related QT_POINTER_SIZE code 2015-10-23 18:10:22 +00:00
dbus Tests: Always verify whether QTemporaryDir/File creation succeeded. 2015-09-28 15:05:43 +00:00
gui Insert leading after each line, not before 2015-10-09 15:18:11 +00:00
guiapplauncher Fix path to examples part of tst_GuiAppLauncher 2015-02-13 07:28:15 +00:00
installed_cmake
network Merge remote-tracking branch 'origin/5.5' into 5.6 2015-10-13 23:03:51 +02:00
opengl tests/auto/opengl: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-24 21:23:34 +00:00
other Merge remote-tracking branch 'origin/5.5' into 5.6 2015-10-23 23:14:22 +02:00
printsupport Various tests: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-28 13:18:55 +00:00
shared Update copyright headers 2015-02-11 06:49:51 +00:00
sql Remove temporary string allocations when reading prepared statement. 2015-08-13 16:53:45 +00:00
testlib Testlib: Output function / total time along with crash dump. 2015-10-13 16:38:43 +00:00
tools moc: fix Q_PROPERTY with parentheses in their MEMBER clause 2015-10-22 16:48:26 +00:00
widgets Item Views: Avoid reentrant call in updateEditorGeometries() 2015-10-27 11:58:32 +00:00
xml Various tests: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b). 2015-07-28 13:18:55 +00:00
auto.pro Silence warnings about missing dbus-send command not found 2015-09-22 21:19:04 +00:00
network-settings.h Update copyright headers 2015-02-11 06:49:51 +00:00
qtest-config.h Update copyright headers 2015-02-11 06:49:51 +00:00
test.pl Update copyright headers 2015-02-11 06:49:51 +00:00