diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-06-15 15:06:56 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-02-08 19:58:01 +0000 |
commit | b034a14dc589fecbbb1e0c807690910303ca82a3 (patch) | |
tree | 6454c00734c013e859ff5760dc4e3b6db3456289 /src | |
parent | f049546d95607a03059ad334087a00e1714876a8 (diff) |
Replace some QList<int> with QVector<int>
On 64-bit platforms, QVector<int> uses only 50% of QList<int>
per-element memory.
Change-Id: I3057781e7fb58007ea2619cc91965a626d01473b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/painting/qpainterpath.cpp | 6 | ||||
-rw-r--r-- | src/gui/text/qtexttable.cpp | 16 | ||||
-rw-r--r-- | src/gui/text/qtexttable_p.h | 2 | ||||
-rw-r--r-- | src/widgets/itemviews/qtableview_p.h | 4 | ||||
-rw-r--r-- | src/widgets/kernel/qaction_p.h | 2 |
5 files changed, 15 insertions, 15 deletions
diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index de88d19d18..ba14a45d4a 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -1653,7 +1653,7 @@ QList<QPolygonF> QPainterPath::toFillPolygons(const QTransform &matrix) const qDebug() << " bounds" << i << bounds.at(i); #endif - QVector< QList<int> > isects; + QVector< QVector<int> > isects; isects.resize(count); // find all intersections @@ -1681,7 +1681,7 @@ QList<QPolygonF> QPainterPath::toFillPolygons(const QTransform &matrix) const // flatten the sets of intersections for (int i=0; i<count; ++i) { - const QList<int> ¤t_isects = isects.at(i); + const QVector<int> ¤t_isects = isects.at(i); for (int j=0; j<current_isects.size(); ++j) { int isect_j = current_isects.at(j); if (isect_j == i) @@ -1709,7 +1709,7 @@ QList<QPolygonF> QPainterPath::toFillPolygons(const QTransform &matrix) const // Join the intersected subpaths as rewinded polygons for (int i=0; i<count; ++i) { - const QList<int> &subpath_list = isects[i]; + const QVector<int> &subpath_list = isects[i]; if (!subpath_list.isEmpty()) { QPolygonF buildUp; for (int j=0; j<subpath_list.size(); ++j) { diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp index 062a214d63..2d5636e1d9 100644 --- a/src/gui/text/qtexttable.cpp +++ b/src/gui/text/qtexttable.cpp @@ -391,7 +391,7 @@ int QTextTablePrivate::findCellIndex(int fragment) const { QFragmentFindHelper helper(pieceTable->fragmentMap().position(fragment), pieceTable->fragmentMap()); - QList<int>::ConstIterator it = std::lower_bound(cells.constBegin(), cells.constEnd(), helper); + const auto it = std::lower_bound(cells.constBegin(), cells.constEnd(), helper); if ((it == cells.constEnd()) || (helper < *it)) return -1; return it - cells.constBegin(); @@ -406,7 +406,7 @@ void QTextTablePrivate::fragmentAdded(QChar type, uint fragment) Q_ASSERT(cells.indexOf(fragment) == -1); const uint pos = pieceTable->fragmentMap().position(fragment); QFragmentFindHelper helper(pos, pieceTable->fragmentMap()); - QList<int>::Iterator it = std::lower_bound(cells.begin(), cells.end(), helper); + auto it = std::lower_bound(cells.begin(), cells.end(), helper); cells.insert(it, fragment); if (!fragment_start || pos < pieceTable->fragmentMap().position(fragment_start)) fragment_start = fragment; @@ -616,7 +616,7 @@ QTextTableCell QTextTable::cellAt(int position) const return QTextTableCell(); QFragmentFindHelper helper(position, map); - QList<int>::ConstIterator it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); + auto it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); if (it != d->cells.begin()) --it; @@ -755,7 +755,7 @@ void QTextTable::insertColumns(int pos, int num) QTextFormatCollection *c = p->formatCollection(); p->beginEditBlock(); - QList<int> extendedSpans; + QVector<int> extendedSpans; for (int i = 0; i < d->nRows; ++i) { int cell; if (i == d->nRows - 1 && pos == d->nCols) { @@ -890,7 +890,7 @@ void QTextTable::removeRows(int pos, int num) p->aboutToRemoveCell(cellAt(pos, 0).firstPosition(), cellAt(pos + num - 1, d->nCols - 1).lastPosition()); - QList<int> touchedCells; + QVector<int> touchedCells; for (int r = pos; r < pos + num; ++r) { for (int c = 0; c < d->nCols; ++c) { int cell = d->grid[r*d->nCols + c]; @@ -952,7 +952,7 @@ void QTextTable::removeColumns(int pos, int num) p->aboutToRemoveCell(cellAt(0, pos).firstPosition(), cellAt(d->nRows - 1, pos + num - 1).lastPosition()); - QList<int> touchedCells; + QVector<int> touchedCells; for (int r = 0; r < d->nRows; ++r) { for (int c = pos; c < pos + num; ++c) { int cell = d->grid[r*d->nCols + c]; @@ -1046,7 +1046,7 @@ void QTextTable::mergeCells(int row, int column, int numRows, int numCols) // find the position at which to insert the contents of the merged cells QFragmentFindHelper helper(origCellPosition, p->fragmentMap()); - QList<int>::Iterator it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); + const auto it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); Q_ASSERT(it != d->cells.end()); Q_ASSERT(!(helper < *it)); Q_ASSERT(*it == cellFragment); @@ -1079,7 +1079,7 @@ void QTextTable::mergeCells(int row, int column, int numRows, int numCols) if (firstCellIndex == -1) { QFragmentFindHelper helper(pos, p->fragmentMap()); - QList<int>::Iterator it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); + const auto it = std::lower_bound(d->cells.begin(), d->cells.end(), helper); Q_ASSERT(it != d->cells.end()); Q_ASSERT(!(helper < *it)); Q_ASSERT(*it == fragment); diff --git a/src/gui/text/qtexttable_p.h b/src/gui/text/qtexttable_p.h index d6d806cec3..72d9d8c639 100644 --- a/src/gui/text/qtexttable_p.h +++ b/src/gui/text/qtexttable_p.h @@ -71,7 +71,7 @@ public: int findCellIndex(int fragment) const; - QList<int> cells; + QVector<int> cells; // symmetric to cells array and maps to indecs in grid, // used for fast-lookup for row/column by fragment mutable QVector<int> cellIndices; diff --git a/src/widgets/itemviews/qtableview_p.h b/src/widgets/itemviews/qtableview_p.h index 71c3dd97fa..617ecb1642 100644 --- a/src/widgets/itemviews/qtableview_p.h +++ b/src/widgets/itemviews/qtableview_p.h @@ -187,8 +187,8 @@ public: int columnSectionAnchor; int columnResizeTimerID; int rowResizeTimerID; - QList<int> columnsToUpdate; - QList<int> rowsToUpdate; + QVector<int> columnsToUpdate; + QVector<int> rowsToUpdate; QHeaderView *horizontalHeader; QHeaderView *verticalHeader; QWidget *cornerWidget; diff --git a/src/widgets/kernel/qaction_p.h b/src/widgets/kernel/qaction_p.h index f43ab6c86e..84c6774141 100644 --- a/src/widgets/kernel/qaction_p.h +++ b/src/widgets/kernel/qaction_p.h @@ -91,7 +91,7 @@ public: QVariant userData; #ifndef QT_NO_SHORTCUT int shortcutId; - QList<int> alternateShortcutIds; + QVector<int> alternateShortcutIds; Qt::ShortcutContext shortcutContext; uint autorepeat : 1; #endif |