diff --git a/activities/KioActivities.cpp b/activities/KioActivities.cpp --- a/activities/KioActivities.cpp +++ b/activities/KioActivities.cpp @@ -101,6 +101,7 @@ KIO::UDSEntry activityEntry(const QString &activity) { KIO::UDSEntry uds; + uds.reserve(8); KActivities::Info activityInfo(activity); uds.fastInsert(KIO::UDSEntry::UDS_NAME, activity); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, activityInfo.name()); @@ -224,6 +225,7 @@ KIO::UDSEntryList udslist; KIO::UDSEntry uds; + uds.reserve(9); uds.fastInsert(KIO::UDSEntry::UDS_NAME, QStringLiteral("current")); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, i18n("Current activity")); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_TYPE, i18n("Activity")); @@ -305,6 +307,7 @@ { QString dirName = i18n("Activities"); KIO::UDSEntry uds; + uds.reserve(6); uds.fastInsert(KIO::UDSEntry::UDS_NAME, dirName); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, dirName); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_TYPE, dirName); diff --git a/archive/kio_archivebase.cpp b/archive/kio_archivebase.cpp --- a/archive/kio_archivebase.cpp +++ b/archive/kio_archivebase.cpp @@ -177,6 +177,7 @@ void ArchiveProtocolBase::createRootUDSEntry( KIO::UDSEntry & entry ) { entry.clear(); + entry.reserve(5); entry.fastInsert( KIO::UDSEntry::UDS_NAME, "." ); entry.fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR ); entry.fastInsert( KIO::UDSEntry::UDS_MODIFICATION_TIME, m_mtime ); @@ -188,6 +189,7 @@ void ArchiveProtocolBase::createUDSEntry( const KArchiveEntry * archiveEntry, UDSEntry & entry ) { entry.clear(); + entry.reserve(8); entry.fastInsert( KIO::UDSEntry::UDS_NAME, archiveEntry->name() ); entry.fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, archiveEntry->permissions() & S_IFMT ); // keep file type only entry.fastInsert( KIO::UDSEntry::UDS_SIZE, archiveEntry->isFile() ? ((KArchiveFile *)archiveEntry)->size() : 0L ); @@ -315,6 +317,7 @@ error( errorNum, url.toDisplayString() ); return; } + entry.reserve(2); // Real directory. Return just enough information for KRun to work entry.fastInsert( KIO::UDSEntry::UDS_NAME, url.fileName()); qCDebug(KIO_ARCHIVE_LOG).nospace() << "ArchiveProtocolBase::stat returning name=" << url.fileName(); diff --git a/man/kio_man.cpp b/man/kio_man.cpp --- a/man/kio_man.cpp +++ b/man/kio_man.cpp @@ -672,6 +672,7 @@ qCDebug(KIO_MAN_LOG) << "URL " << url.url() << " parsed to title='" << title << "' section=" << section; UDSEntry entry; + entry.reserve(3); entry.fastInsert(KIO::UDSEntry::UDS_NAME, title); entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG); entry.fastInsert(KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1("text/html")); @@ -1381,6 +1382,7 @@ if (section.isEmpty()) { for (QStringList::ConstIterator it = section_names.constBegin(); it != section_names.constEnd(); ++it) { UDSEntry uds_entry; + uds_entry.reserve(3); QString name = "man:/(" + *it + ')'; uds_entry.fastInsert( KIO::UDSEntry::UDS_NAME, sectionName( *it ) ); @@ -1400,6 +1402,7 @@ stripExtension( &(*it) ); UDSEntry uds_entry; + uds_entry.reserve(3); uds_entry.fastInsert(KIO::UDSEntry::UDS_NAME, *it); uds_entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG); uds_entry.fastInsert(KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1("text/html")); diff --git a/mtp/kio_mtp.cpp b/mtp/kio_mtp.cpp --- a/mtp/kio_mtp.cpp +++ b/mtp/kio_mtp.cpp @@ -37,6 +37,7 @@ static UDSEntry getEntry(const KMTPDeviceInterface *device) { UDSEntry entry; + entry.reserve(5); entry.fastInsert(UDSEntry::UDS_NAME, device->friendlyName()); entry.fastInsert(UDSEntry::UDS_ICON_NAME, QStringLiteral("multimedia-player")); entry.fastInsert(UDSEntry::UDS_FILE_TYPE, S_IFDIR); @@ -48,6 +49,7 @@ static UDSEntry getEntry(const KMTPStorageInterface *storage) { UDSEntry entry; + entry.reserve(5); entry.fastInsert(UDSEntry::UDS_NAME, storage->description()); entry.fastInsert(UDSEntry::UDS_ICON_NAME, QStringLiteral("drive-removable-media")); entry.fastInsert(UDSEntry::UDS_FILE_TYPE, S_IFDIR); @@ -59,6 +61,7 @@ static UDSEntry getEntry(const KMTPFile &file) { UDSEntry entry; + entry.reserve(9); entry.fastInsert(UDSEntry::UDS_NAME, file.filename()); if (file.isFolder()) { entry.fastInsert(UDSEntry::UDS_FILE_TYPE, S_IFDIR); @@ -175,6 +178,7 @@ // list '.' entry, otherwise files cannot be pasted to empty folders KIO::UDSEntry entry; + entry.reserve(4); entry.fastInsert(KIO::UDSEntry::UDS_NAME, QStringLiteral(".")); entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); entry.fastInsert(KIO::UDSEntry::UDS_SIZE, 0); @@ -278,6 +282,7 @@ UDSEntry entry; // root if (pathItems.size() < 1) { + entry.reserve(4); entry.fastInsert(UDSEntry::UDS_NAME, QLatin1String("mtp:///")); entry.fastInsert(UDSEntry::UDS_FILE_TYPE, S_IFDIR); entry.fastInsert(UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH | S_IXUSR | S_IXGRP | S_IXOTH); diff --git a/network/ioslave/networkslave.cpp b/network/ioslave/networkslave.cpp --- a/network/ioslave/networkslave.cpp +++ b/network/ioslave/networkslave.cpp @@ -279,6 +279,7 @@ void NetworkSlave::feedEntryAsNetwork( KIO::UDSEntry* entry ) { + entry->reserve(3); entry->fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR ); entry->fastInsert( KIO::UDSEntry::UDS_DISPLAY_NAME, i18n("Network")); // entry->fastInsert( KIO::UDSEntry::UDS_ICON_NAME, NetworkIconName ); @@ -288,6 +289,7 @@ void NetworkSlave::feedEntryAsDevice( KIO::UDSEntry* entry, const Mollet::NetDevice& deviceData ) { + entry->reserve(4); entry->fastInsert( KIO::UDSEntry::UDS_NAME, deviceData.hostAddress() ); entry->fastInsert( KIO::UDSEntry::UDS_DISPLAY_NAME, deviceData.name() ); entry->fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR ); @@ -298,6 +300,7 @@ void NetworkSlave::feedEntryAsService( KIO::UDSEntry* entry, const Mollet::NetService& serviceData ) { + entry->reserve(7); entry->fastInsert( KIO::UDSEntry::UDS_NAME, serviceData.name()+QLatin1Char('.')+serviceData.type() ); entry->fastInsert( KIO::UDSEntry::UDS_DISPLAY_NAME, serviceData.name() ); entry->fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFLNK ); diff --git a/recentdocuments/recentdocuments.cpp b/recentdocuments/recentdocuments.cpp --- a/recentdocuments/recentdocuments.cpp +++ b/recentdocuments/recentdocuments.cpp @@ -148,6 +148,7 @@ // QString dirName = i18n("Recent Documents"); KIO::UDSEntry uds; + uds.reserve(6); uds.fastInsert(KIO::UDSEntry::UDS_NAME, dirName); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, dirName); uds.fastInsert(KIO::UDSEntry::UDS_DISPLAY_TYPE, dirName); diff --git a/settings/kio_settings.cpp b/settings/kio_settings.cpp --- a/settings/kio_settings.cpp +++ b/settings/kio_settings.cpp @@ -63,6 +63,7 @@ static void createFileEntry(KIO::UDSEntry& entry, const KService::Ptr& service) { entry.clear(); + entry.reserve(9); entry.fastInsert(KIO::UDSEntry::UDS_NAME, KIO::encodeFileName(service->desktopEntryName())); entry.fastInsert(KIO::UDSEntry::UDS_DISPLAY_NAME, service->name()); // translated name entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG); @@ -77,6 +78,7 @@ static void createDirEntry(KIO::UDSEntry& entry, const QString& name, const QString& iconName) { entry.clear(); + entry.reserve(6); // +1 for UDS_DISPLAY_NAME entry.fastInsert( KIO::UDSEntry::UDS_NAME, name ); entry.fastInsert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR ); entry.fastInsert( KIO::UDSEntry::UDS_ACCESS, 0500 ); diff --git a/sftp/kio_sftp.cpp b/sftp/kio_sftp.cpp --- a/sftp/kio_sftp.cpp +++ b/sftp/kio_sftp.cpp @@ -411,6 +411,7 @@ uint64_t size = 0U; Q_ASSERT(entry.count() == 0); + entry.reserve(10); sftp_attributes sb = sftp_lstat(mSftp, path.constData()); if (sb == nullptr) { @@ -2178,6 +2179,7 @@ } entry.clear(); + entry.reserve(10); entry.fastInsert(KIO::UDSEntry::UDS_NAME, QFile::decodeName(dirent->name)); if (dirent->type == SSH_FILEXFER_TYPE_SYMLINK) { diff --git a/smb/dnssddiscoverer.cpp b/smb/dnssddiscoverer.cpp --- a/smb/dnssddiscoverer.cpp +++ b/smb/dnssddiscoverer.cpp @@ -34,6 +34,7 @@ KIO::UDSEntry DNSSDDiscovery::toEntry() const { KIO::UDSEntry entry; + entry.reserve(6); entry.fastInsert(KIO::UDSEntry::UDS_NAME, udsName()); entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR); diff --git a/smb/wsdiscoverer.cpp b/smb/wsdiscoverer.cpp --- a/smb/wsdiscoverer.cpp +++ b/smb/wsdiscoverer.cpp @@ -303,6 +303,7 @@ KIO::UDSEntry WSDiscovery::toEntry() const { KIO::UDSEntry entry; + entry.reserve(6); entry.fastInsert(KIO::UDSEntry::UDS_NAME, udsName()); entry.fastInsert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);