From 7982dfe6e637c27369cbb14071e8b4a352aacaca Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 2 Mar 2017 20:13:00 +0100 Subject: QMimeBinaryProvider: avoid QString creation just to check for isEmpty() Return a QLatin1String instead and only if that is not empty, convert it into a QString. Also saves 320B in text size on optimized GCC 6.1 AMD64 Linux builds. Change-Id: I5432d213a6200e45414626bedb9f216bafaf1108 Reviewed-by: David Faure --- src/corelib/mimetypes/qmimeprovider.cpp | 8 ++++---- src/corelib/mimetypes/qmimeprovider_p.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/corelib/mimetypes/qmimeprovider.cpp b/src/corelib/mimetypes/qmimeprovider.cpp index 5c0acce4c3..ed7ebb2ef5 100644 --- a/src/corelib/mimetypes/qmimeprovider.cpp +++ b/src/corelib/mimetypes/qmimeprovider.cpp @@ -655,7 +655,7 @@ void QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data) } // Binary search in the icons or generic-icons list -QString QMimeBinaryProvider::iconForMime(CacheFile *cacheFile, int posListOffset, const QByteArray &inputMime) +QLatin1String QMimeBinaryProvider::iconForMime(CacheFile *cacheFile, int posListOffset, const QByteArray &inputMime) { const int iconsListOffset = cacheFile->getUint32(posListOffset); const int numIcons = cacheFile->getUint32(iconsListOffset); @@ -676,7 +676,7 @@ QString QMimeBinaryProvider::iconForMime(CacheFile *cacheFile, int posListOffset return QLatin1String(cacheFile->getCharStar(iconOffset)); } } - return QString(); + return QLatin1String(); } void QMimeBinaryProvider::loadIcon(QMimeTypePrivate &data) @@ -684,7 +684,7 @@ void QMimeBinaryProvider::loadIcon(QMimeTypePrivate &data) checkCache(); const QByteArray inputMime = data.name.toLatin1(); for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { - const QString icon = iconForMime(cacheFile, PosIconsListOffset, inputMime); + const QLatin1String icon = iconForMime(cacheFile, PosIconsListOffset, inputMime); if (!icon.isEmpty()) { data.iconName = icon; return; @@ -697,7 +697,7 @@ void QMimeBinaryProvider::loadGenericIcon(QMimeTypePrivate &data) checkCache(); const QByteArray inputMime = data.name.toLatin1(); for (CacheFile *cacheFile : qAsConst(m_cacheFiles)) { - const QString icon = iconForMime(cacheFile, PosGenericIconsListOffset, inputMime); + const QLatin1String icon = iconForMime(cacheFile, PosGenericIconsListOffset, inputMime); if (!icon.isEmpty()) { data.genericIconName = icon; return; diff --git a/src/corelib/mimetypes/qmimeprovider_p.h b/src/corelib/mimetypes/qmimeprovider_p.h index f410e62267..0be01d2fd0 100644 --- a/src/corelib/mimetypes/qmimeprovider_p.h +++ b/src/corelib/mimetypes/qmimeprovider_p.h @@ -116,7 +116,7 @@ private: void matchGlobList(QMimeGlobMatchResult &result, CacheFile *cacheFile, int offset, const QString &fileName); bool matchSuffixTree(QMimeGlobMatchResult &result, CacheFile *cacheFile, int numEntries, int firstOffset, const QString &fileName, int charPos, bool caseSensitiveCheck); bool matchMagicRule(CacheFile *cacheFile, int numMatchlets, int firstOffset, const QByteArray &data); - QString iconForMime(CacheFile *cacheFile, int posListOffset, const QByteArray &inputMime); + QLatin1String iconForMime(CacheFile *cacheFile, int posListOffset, const QByteArray &inputMime); void loadMimeTypeList(); void checkCache(); -- cgit v1.2.3