From 507b6b3e4bcef3ef280944f3956b7f32ed86985b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Martins?= Date: Tue, 23 Jun 2015 16:18:12 +0100 Subject: Use QList::reserve(), reduces reallocations Change-Id: I9f218bdd65a97ad9c867b695f3ba27ab64a54d2a Reviewed-by: Marc Mutz --- src/platformsupport/dbusmenu/qdbusmenutypes.cpp | 1 + src/platformsupport/linuxaccessibility/atspiadaptor.cpp | 8 ++++++-- src/plugins/bearer/connman/qconnmanengine.cpp | 4 +++- src/plugins/generic/tuiotouch/qtuiohandler.cpp | 1 + src/plugins/platforminputcontexts/ibus/qibustypes.cpp | 6 ++++-- .../deviceintegration/eglfs_kms/qeglfskmsdevice.cpp | 1 + src/plugins/platforms/xcb/qxcbsessionmanager.cpp | 1 + src/plugins/printsupport/cups/qcupsprintengine.cpp | 4 +++- src/plugins/printsupport/cups/qcupsprintersupport.cpp | 1 + src/printsupport/kernel/qpaintengine_alpha.cpp | 3 ++- src/printsupport/kernel/qprinter.cpp | 4 +++- src/printsupport/kernel/qprinterinfo.cpp | 16 ++++++++++++---- 12 files changed, 38 insertions(+), 12 deletions(-) diff --git a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp index 73957eacfe..94df0f53dd 100644 --- a/src/platformsupport/dbusmenu/qdbusmenutypes.cpp +++ b/src/platformsupport/dbusmenu/qdbusmenutypes.cpp @@ -208,6 +208,7 @@ QDBusMenuItemList QDBusMenuItem::items(const QList &ids, const QStringList Q_UNUSED(propertyNames) QDBusMenuItemList ret; QList items = QDBusPlatformMenuItem::byIds(ids); + ret.reserve(items.size()); Q_FOREACH (const QDBusPlatformMenuItem *item, items) ret << QDBusMenuItem(item); return ret; diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp index c040dab5e1..47c37ba6dc 100644 --- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp +++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp @@ -1431,7 +1431,9 @@ bool AtSpiAdaptor::accessibleInterface(QAccessibleInterface *interface, const QS QSpiObjectReference(connection, QDBusObjectPath(QSPI_OBJECT_PATH_ROOT)))); } else if (function == QLatin1String("GetChildren")) { QSpiObjectReferenceArray children; - for (int i = 0; i < interface->childCount(); ++i) { + const int numChildren = interface->childCount(); + children.reserve(numChildren); + for (int i = 0; i < numChildren; ++i) { QString childPath = pathForInterface(interface->child(i)); QSpiObjectReference ref(connection, QDBusObjectPath(childPath)); children << ref; @@ -1747,7 +1749,9 @@ QSpiActionArray AtSpiAdaptor::getActions(QAccessibleInterface *interface) const { QAccessibleActionInterface *actionInterface = interface->actionInterface(); QSpiActionArray actions; - Q_FOREACH (const QString &actionName, QAccessibleBridgeUtils::effectiveActionNames(interface)) { + const QStringList actionNames = QAccessibleBridgeUtils::effectiveActionNames(interface); + actions.reserve(actionNames.size()); + Q_FOREACH (const QString &actionName, actionNames) { QSpiAction action; QStringList keyBindings; diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 905420099d..b7cc5f949c 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -121,8 +121,10 @@ QList QConnmanEngine::getConfigurations() QMutexLocker locker(&mutex); QList fetchedConfigurations; QNetworkConfigurationPrivate* cpPriv = 0; + const int numFoundConfigurations = foundConfigurations.count(); + fetchedConfigurations.reserve(numFoundConfigurations); - for (int i = 0; i < foundConfigurations.count(); ++i) { + for (int i = 0; i < numFoundConfigurations; ++i) { QNetworkConfigurationPrivate *config = new QNetworkConfigurationPrivate; cpPriv = foundConfigurations.at(i); diff --git a/src/plugins/generic/tuiotouch/qtuiohandler.cpp b/src/plugins/generic/tuiotouch/qtuiohandler.cpp index 5211ed8381..dd161570e8 100644 --- a/src/plugins/generic/tuiotouch/qtuiohandler.cpp +++ b/src/plugins/generic/tuiotouch/qtuiohandler.cpp @@ -317,6 +317,7 @@ void QTuioHandler::process2DCurFseq(const QOscMessage &message) return; QList tpl; + tpl.reserve(m_activeCursors.size() + m_deadCursors.size()); foreach (const QTuioCursor &tc, m_activeCursors) { QWindowSystemInterface::TouchPoint tp = cursorToTouchPoint(tc, win); diff --git a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp index d6be6cbb31..f88e5ca5a3 100644 --- a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp @@ -225,9 +225,10 @@ const QDBusArgument &operator>>(const QDBusArgument &arg, QIBusAttributeList &at QList QIBusAttributeList::imAttributes() const { QHash, QTextCharFormat> rangeAttrs; + const int numAttributes = attributes.size(); // Merge text fomats for identical ranges into a single QTextFormat. - for (int i = 0; i < attributes.size(); ++i) { + for (int i = 0; i < numAttributes; ++i) { const QIBusAttribute &attr = attributes.at(i); const QTextCharFormat &format = attr.format(); @@ -239,8 +240,9 @@ QList QIBusAttributeList::imAttributes() const // Assemble list in original attribute order. QList imAttrs; + imAttrs.reserve(numAttributes); - for (int i = 0; i < attributes.size(); ++i) { + for (int i = 0; i < numAttributes; ++i) { const QIBusAttribute &attr = attributes.at(i); const QTextFormat &format = attr.format(); diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsdevice.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsdevice.cpp index 18a66e34f5..0fa191ea60 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsdevice.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsdevice.cpp @@ -208,6 +208,7 @@ QEglFSKmsScreen *QEglFSKmsDevice::screenForConnector(drmModeResPtr resources, dr } QList modes; + modes.reserve(connector->count_modes); qCDebug(qLcEglfsKmsDebug) << connectorName << "mode count:" << connector->count_modes; for (int i = 0; i < connector->count_modes; i++) { const drmModeModeInfo &mode = connector->modes[i]; diff --git a/src/plugins/platforms/xcb/qxcbsessionmanager.cpp b/src/plugins/platforms/xcb/qxcbsessionmanager.cpp index 328b72234a..c2101a71c1 100644 --- a/src/plugins/platforms/xcb/qxcbsessionmanager.cpp +++ b/src/plugins/platforms/xcb/qxcbsessionmanager.cpp @@ -134,6 +134,7 @@ static void sm_setProperty(const QString &name, const QStringList &value) SmPropValue *prop = new SmPropValue[value.count()]; int count = 0; QList vl; + vl.reserve(value.size()); for (QStringList::ConstIterator it = value.begin(); it != value.end(); ++it) { prop[count].length = (*it).length(); vl.append((*it).toUtf8()); diff --git a/src/plugins/printsupport/cups/qcupsprintengine.cpp b/src/plugins/printsupport/cups/qcupsprintengine.cpp index b0c78c66f3..7ca81986b4 100644 --- a/src/plugins/printsupport/cups/qcupsprintengine.cpp +++ b/src/plugins/printsupport/cups/qcupsprintengine.cpp @@ -224,7 +224,9 @@ void QCupsPrintEnginePrivate::closePrintDevice() it += 2; } - for (int c = 0; c < options.size(); ++c) { + const int numOptions = options.size(); + cupsOptStruct.reserve(numOptions); + for (int c = 0; c < numOptions; ++c) { cups_option_t opt; opt.name = options[c].first.data(); opt.value = options[c].second.data(); diff --git a/src/plugins/printsupport/cups/qcupsprintersupport.cpp b/src/plugins/printsupport/cups/qcupsprintersupport.cpp index da8f369787..b257918acf 100644 --- a/src/plugins/printsupport/cups/qcupsprintersupport.cpp +++ b/src/plugins/printsupport/cups/qcupsprintersupport.cpp @@ -78,6 +78,7 @@ QStringList QCupsPrinterSupport::availablePrintDeviceIds() const QStringList list; cups_dest_t *dests; int count = cupsGetDests(&dests); + list.reserve(count); for (int i = 0; i < count; ++i) { QString printerId = QString::fromLocal8Bit(dests[i].name); if (dests[i].instance) diff --git a/src/printsupport/kernel/qpaintengine_alpha.cpp b/src/printsupport/kernel/qpaintengine_alpha.cpp index 010a628e4f..710691453a 100644 --- a/src/printsupport/kernel/qpaintengine_alpha.cpp +++ b/src/printsupport/kernel/qpaintengine_alpha.cpp @@ -178,7 +178,8 @@ void QAlphaPaintEngine::drawPolygon(const QPointF *points, int pointCount, Polyg Q_D(QAlphaPaintEngine); QPolygonF poly; - for (int i=0; i QPrinter::supportedResolutions() const QList varlist = d->printEngine->property(QPrintEngine::PPK_SupportedResolutions).toList(); QList intlist; - for (int i=0; i QPrinterInfo::supportedPaperSizes() const { Q_D(const QPrinterInfo); QList list; - foreach (const QPageSize &pageSize, d->m_printDevice.supportedPageSizes()) + const QList supportedPageSizes = d->m_printDevice.supportedPageSizes(); + list.reserve(supportedPageSizes.size()); + foreach (const QPageSize &pageSize, supportedPageSizes) list.append(QPrinter::PaperSize(pageSize.id())); return list; } @@ -336,7 +338,9 @@ QList > QPrinterInfo::supportedSizesWithNames() const { Q_D(const QPrinterInfo); QList > list; - foreach (const QPageSize &pageSize, d->m_printDevice.supportedPageSizes()) + const QList supportedPageSizes = d->m_printDevice.supportedPageSizes(); + list.reserve(supportedPageSizes.size()); + foreach (const QPageSize &pageSize, supportedPageSizes) list.append(qMakePair(pageSize.name(), pageSize.size(QPageSize::Millimeter))); return list; } @@ -376,7 +380,9 @@ QList QPrinterInfo::supportedDuplexModes() const { Q_D(const QPrinterInfo); QList list; - foreach (QPrint::DuplexMode mode, d->m_printDevice.supportedDuplexModes()) + const QList supportedDuplexModes = d->m_printDevice.supportedDuplexModes(); + list.reserve(supportedDuplexModes.size()); + foreach (QPrint::DuplexMode mode, supportedDuplexModes) list << QPrinter::DuplexMode(mode); return list; } @@ -416,7 +422,9 @@ QList QPrinterInfo::availablePrinters() QList list; QPlatformPrinterSupport *ps = QPlatformPrinterSupportPlugin::get(); if (ps) { - foreach (const QString &id, ps->availablePrintDeviceIds()) + const QStringList availablePrintDeviceIds = ps->availablePrintDeviceIds(); + list.reserve(availablePrintDeviceIds.size()); + foreach (const QString &id, availablePrintDeviceIds) list.append(QPrinterInfo(id)); } return list; -- cgit v1.2.3