summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2015-06-15 15:06:56 +0200
committerMarc Mutz <marc.mutz@kdab.com>2016-02-08 19:58:01 +0000
commitb034a14dc589fecbbb1e0c807690910303ca82a3 (patch)
tree6454c00734c013e859ff5760dc4e3b6db3456289 /src
parentf049546d95607a03059ad334087a00e1714876a8 (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.cpp6
-rw-r--r--src/gui/text/qtexttable.cpp16
-rw-r--r--src/gui/text/qtexttable_p.h2
-rw-r--r--src/widgets/itemviews/qtableview_p.h4
-rw-r--r--src/widgets/kernel/qaction_p.h2
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> &current_isects = isects.at(i);
+ const QVector<int> &current_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