QListView: add assert for static analyzer

The loop that initializes the item should execute at least once, so the pointer
should be pointing to something valid. The static analyzer doesn't see that,
and warns about unguarded access to the item pointer in report with hash
d008dbef4573afca54be0139e2971a4a. Add asserts for both the condition that makes
the loop run at least once, and for the item pointer not being nullptr.

Pick-to: 6.1
Change-Id: I94b9f3db3b3ce3d82445cf66788c05854b441aaf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
bb10
Volker Hilsheimer 2021-05-18 16:08:36 +02:00
parent 4a23a1fbb5
commit ddc886d670
1 changed files with 2 additions and 0 deletions

View File

@ -3170,6 +3170,7 @@ void QIconModeViewBase::doDynamicLayout(const QListViewLayoutInfo &info)
QRect rect(QPoint(), topLeft);
QListViewItem *item = nullptr;
Q_ASSERT(info.first <= info.last);
for (int row = info.first; row <= info.last; ++row) {
item = &items[row];
if (isHidden(row)) {
@ -3240,6 +3241,7 @@ void QIconModeViewBase::doDynamicLayout(const QListViewLayoutInfo &info)
flowPosition += deltaFlowPosition; // current position + item width + gap
}
}
Q_ASSERT(item);
batchSavedDeltaSeg = deltaSegPosition;
batchStartRow = info.last + 1;
bool done = (info.last >= rowCount() - 1);