diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2013-10-06 22:50:12 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-01-15 21:49:14 +0000 |
commit | 1a84e55b8ffc2fee811e9dc61cce6faa3372e1ab (patch) | |
tree | 27c9b654c90b8309921ef6f6721559c7d1449e80 /src/corelib/itemmodels | |
parent | 982656351be2f4ec84803022f5ce92f3755a44ad (diff) |
QtCore: replace uses of inefficient QList<QPair>s with QVectors [itemmodels]
These QPairs are larger than a void*, so holding them in QLists
is needlessly inefficient. Worse, the code could come to depend
on the fragile property of (inefficient) QLists that references
to elements therein never are invalidated.
Fix by holding them in QVector instead.
Change-Id: Ie8d8eff3448ada7aef5dfba7fc701a59821f5b54
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/itemmodels')
-rw-r--r-- | src/corelib/itemmodels/qsortfilterproxymodel.cpp | 2 | ||||
-rw-r--r-- | src/corelib/itemmodels/qstringlistmodel.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 184e340395..dc159c8f7c 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE -typedef QList<QPair<QModelIndex, QPersistentModelIndex> > QModelIndexPairList; +typedef QVector<QPair<QModelIndex, QPersistentModelIndex> > QModelIndexPairList; static inline QSet<int> qVectorToSet(const QVector<int> &vector) { diff --git a/src/corelib/itemmodels/qstringlistmodel.cpp b/src/corelib/itemmodels/qstringlistmodel.cpp index 5f39fa60d7..e28348474c 100644 --- a/src/corelib/itemmodels/qstringlistmodel.cpp +++ b/src/corelib/itemmodels/qstringlistmodel.cpp @@ -262,7 +262,7 @@ void QStringListModel::sort(int, Qt::SortOrder order) { emit layoutAboutToBeChanged(QList<QPersistentModelIndex>(), VerticalSortHint); - QList<QPair<QString, int> > list; + QVector<QPair<QString, int> > list; const int lstCount = lst.count(); list.reserve(lstCount); for (int i = 0; i < lstCount; ++i) |