diff options
author | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-10 12:01:11 +0100 |
---|---|---|
committer | Sérgio Martins <sergio.martins@kdab.com> | 2015-06-22 14:03:39 +0000 |
commit | eca8f1bf988abf7337927ed175a9d5beb0d4d837 (patch) | |
tree | d3e77e48ef77f84c0a2267bdb922adbce5205792 /src/gui/text | |
parent | 307f55129181f67fb99bd9dd38b7017928a0aae1 (diff) |
gui: Add several QList::reserve() calls.
Reduces reallocations.
Change-Id: I0db16726f413a67b76a73fabd013f910ab5f5109
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/gui/text')
-rw-r--r-- | src/gui/text/qcssparser.cpp | 1 | ||||
-rw-r--r-- | src/gui/text/qfont.cpp | 7 | ||||
-rw-r--r-- | src/gui/text/qtextdocumentlayout.cpp | 4 | ||||
-rw-r--r-- | src/gui/text/qtextengine.cpp | 1 | ||||
-rw-r--r-- | src/gui/text/qtextformat.cpp | 6 | ||||
-rw-r--r-- | src/gui/text/qtextoption.cpp | 6 | ||||
-rw-r--r-- | src/gui/text/qzip.cpp | 4 |
7 files changed, 18 insertions, 11 deletions
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 3c98cb568d..adbb3df3bf 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -461,6 +461,7 @@ void ValueExtractor::lengthValues(const Declaration &decl, int *m) } QList<QVariant> v; + v.reserve(4); for (i = 0; i < 4; i++) { v += QVariant::fromValue<LengthData>(datas[i]); m[i] = lengthValueFromData(datas[i], f); diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index ce39645246..3b55ace68d 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -1860,14 +1860,9 @@ void QFont::removeSubstitutions(const QString &familyName) */ QStringList QFont::substitutions() { - typedef QFontSubst::const_iterator QFontSubstConstIterator; - QFontSubst *fontSubst = globalFontSubst(); Q_ASSERT(fontSubst != 0); - QStringList ret; - const QFontSubstConstIterator cend = fontSubst->constEnd(); - for (QFontSubstConstIterator it = fontSubst->constBegin(); it != cend; ++it) - ret.append(it.key()); + QStringList ret = fontSubst->keys(); ret.sort(); return ret; diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index d7d68f01c5..7d75e649b0 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -1071,7 +1071,9 @@ void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *pain it = frameIteratorForYPosition(QFixed::fromReal(context.clip.top())); QList<QTextFrame *> floats; - for (int i = 0; i < fd->floats.count(); ++i) + const int numFloats = fd->floats.count(); + floats.reserve(numFloats); + for (int i = 0; i < numFloats; ++i) floats.append(fd->floats.at(i)); drawFlow(off, painter, context, it, floats, &cursorBlockNeedingRepaint); diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 187ffa5be7..e87711ef99 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -2863,6 +2863,7 @@ QFixed QTextEngine::calculateTabWidth(int item, QFixed x) const if (!tabArray.isEmpty()) { if (isRightToLeft()) { // rebase the tabArray positions. QList<QTextOption::Tab> newTabs; + newTabs.reserve(tabArray.count()); QList<QTextOption::Tab>::Iterator iter = tabArray.begin(); while(iter != tabArray.end()) { QTextOption::Tab tab = *iter; diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index d4eb1a4b0b..a6b0804023 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -1115,7 +1115,9 @@ void QTextFormat::setProperty(int propertyId, const QVector<QTextLength> &value) if (!d) d = new QTextFormatPrivate; QVariantList list; - for (int i=0; i<value.size(); ++i) + const int numValues = value.size(); + list.reserve(numValues); + for (int i = 0; i < numValues; ++i) list << value.at(i); d->insertProperty(propertyId, list); } @@ -2041,6 +2043,7 @@ QTextBlockFormat::QTextBlockFormat(const QTextFormat &fmt) void QTextBlockFormat::setTabPositions(const QList<QTextOption::Tab> &tabs) { QList<QVariant> list; + list.reserve(tabs.count()); QList<QTextOption::Tab>::ConstIterator iter = tabs.constBegin(); while (iter != tabs.constEnd()) { QVariant v; @@ -2065,6 +2068,7 @@ QList<QTextOption::Tab> QTextBlockFormat::tabPositions() const QList<QTextOption::Tab> answer; QList<QVariant> variantsList = qvariant_cast<QList<QVariant> >(variant); QList<QVariant>::Iterator iter = variantsList.begin(); + answer.reserve(variantsList.count()); while(iter != variantsList.end()) { answer.append( qvariant_cast<QTextOption::Tab>(*iter)); ++iter; diff --git a/src/gui/text/qtextoption.cpp b/src/gui/text/qtextoption.cpp index dbafcfd58e..5a4f6b7954 100644 --- a/src/gui/text/qtextoption.cpp +++ b/src/gui/text/qtextoption.cpp @@ -146,6 +146,7 @@ void QTextOption::setTabArray(const QList<qreal> &tabStops) d = new QTextOptionPrivate; QList<QTextOption::Tab> tabs; QTextOption::Tab tab; + tabs.reserve(tabStops.count()); foreach (qreal pos, tabStops) { tab.position = pos; tabs.append(tab); @@ -174,10 +175,11 @@ void QTextOption::setTabs(const QList<QTextOption::Tab> &tabStops) */ QList<qreal> QTextOption::tabArray() const { + QList<qreal> answer; if (!d) - return QList<qreal>(); + return answer; - QList<qreal> answer; + answer.reserve(d->tabStops.count()); QList<QTextOption::Tab>::ConstIterator iter = d->tabStops.constBegin(); while(iter != d->tabStops.constEnd()) { answer.append( (*iter).position); diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp index edd3447357..a33716ebe8 100644 --- a/src/gui/text/qzip.cpp +++ b/src/gui/text/qzip.cpp @@ -916,7 +916,9 @@ QList<QZipReader::FileInfo> QZipReader::fileInfoList() const { d->scanFiles(); QList<QZipReader::FileInfo> files; - for (int i = 0; i < d->fileHeaders.size(); ++i) { + const int numFileHeaders = d->fileHeaders.size(); + files.reserve(numFileHeaders); + for (int i = 0; i < numFileHeaders; ++i) { QZipReader::FileInfo fi; d->fillFileInfo(i, fi); files.append(fi); |