From 1cc06b2e9499b65ac30bbc667cf99e0077c48af7 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 8 Oct 2014 12:41:28 +0200 Subject: [PATCH] Don't use QStringLiteral in startsWith/endsWidth For QLatin1String, startsWith/endsWith is overloaded, so comparing to a latin-1 (C) string literal is efficient, since strlen() is comparatively fast. OTOH, QStringLiteral, when not using RVO, litters the code with QString dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just use QLatin1String instead. Change-Id: I7eaf464c67b55116f970fe7f58a85f19ce4d254e Reviewed-by: Thiago Macieira --- src/corelib/io/qstorageinfo_unix.cpp | 12 ++++++------ src/corelib/io/qstorageinfo_win.cpp | 2 +- src/gui/kernel/qguiapplication.cpp | 2 +- src/gui/painting/qpagesize.cpp | 4 ++-- src/plugins/platforms/windows/qwindowsmime.cpp | 4 ++-- src/widgets/styles/qstylesheetstyle.cpp | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp index b22358ed275..481de6ee38f 100644 --- a/src/corelib/io/qstorageinfo_unix.cpp +++ b/src/corelib/io/qstorageinfo_unix.cpp @@ -88,12 +88,12 @@ QT_BEGIN_NAMESPACE static bool isPseudoFs(const QString &mountDir, const QByteArray &type) { - if (mountDir.startsWith(QStringLiteral("/dev")) - || mountDir.startsWith(QStringLiteral("/proc")) - || mountDir.startsWith(QStringLiteral("/run")) - || mountDir.startsWith(QStringLiteral("/sys")) - || mountDir.startsWith(QStringLiteral("/var/run")) - || mountDir.startsWith(QStringLiteral("/var/lock"))) { + if (mountDir.startsWith(QLatin1String("/dev")) + || mountDir.startsWith(QLatin1String("/proc")) + || mountDir.startsWith(QLatin1String("/run")) + || mountDir.startsWith(QLatin1String("/sys")) + || mountDir.startsWith(QLatin1String("/var/run")) + || mountDir.startsWith(QLatin1String("/var/lock"))) { return true; } #if defined(Q_OS_LINUX) diff --git a/src/corelib/io/qstorageinfo_win.cpp b/src/corelib/io/qstorageinfo_win.cpp index aa970778e6c..b0d3e7c6da3 100644 --- a/src/corelib/io/qstorageinfo_win.cpp +++ b/src/corelib/io/qstorageinfo_win.cpp @@ -61,7 +61,7 @@ void QStorageInfoPrivate::initRootPath() QString path = QDir::toNativeSeparators(rootPath); rootPath.clear(); - if (path.startsWith(QStringLiteral("\\\\?\\"))) + if (path.startsWith(QLatin1String("\\\\?\\"))) path.remove(0, 4); if (path.length() < 2 || path.at(1) != QLatin1Char(':')) return; diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 3e50ce44c4b..5233d76d7b3 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -1201,7 +1201,7 @@ void QGuiApplicationPrivate::eventDispatcherReady() static bool runningUnderDebugger() { const QFileInfo parentProcExe(QStringLiteral("/proc/") + QString::number(getppid()) + QStringLiteral("/exe")); - return parentProcExe.isSymLink() && parentProcExe.symLinkTarget().endsWith(QStringLiteral("/gdb")); + return parentProcExe.isSymLink() && parentProcExe.symLinkTarget().endsWith(QLatin1String("/gdb")); } #endif diff --git a/src/gui/painting/qpagesize.cpp b/src/gui/painting/qpagesize.cpp index faf3e3941eb..2753d9351ce 100644 --- a/src/gui/painting/qpagesize.cpp +++ b/src/gui/painting/qpagesize.cpp @@ -396,9 +396,9 @@ static QPageSize::PageSizeId qt_idForPpdKey(const QString &ppdKey, QSize *match return QPageSize::Custom; QString key = ppdKey; // Remove any Rotated or Tranverse modifiers - if (key.endsWith(QStringLiteral("Rotated"))) + if (key.endsWith(QLatin1String("Rotated"))) key.chop(7); - else if (key.endsWith(QStringLiteral(".Transverse"))) + else if (key.endsWith(QLatin1String(".Transverse"))) key.chop(11); for (int i = 0; i <= int(QPageSize::LastPageSize); ++i) { if (QLatin1String(qt_pageSizes[i].mediaOption) == key) { diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp index b7b4430ed73..bc8e9347dcc 100644 --- a/src/plugins/platforms/windows/qwindowsmime.cpp +++ b/src/plugins/platforms/windows/qwindowsmime.cpp @@ -611,7 +611,7 @@ bool QWindowsMimeText::convertFromMime(const FORMATETC &formatetc, const QMimeDa bool QWindowsMimeText::canConvertToMime(const QString &mimeType, IDataObject *pDataObj) const { - return mimeType.startsWith(QStringLiteral("text/plain")) + return mimeType.startsWith(QLatin1String("text/plain")) && (canGetData(CF_UNICODETEXT, pDataObj) || canGetData(CF_TEXT, pDataObj)); } @@ -628,7 +628,7 @@ QString QWindowsMimeText::mimeForFormat(const FORMATETC &formatetc) const QVector QWindowsMimeText::formatsForMime(const QString &mimeType, const QMimeData *mimeData) const { QVector formatics; - if (mimeType.startsWith(QStringLiteral("text/plain")) && mimeData->hasText()) { + if (mimeType.startsWith(QLatin1String("text/plain")) && mimeData->hasText()) { formatics += setCf(CF_UNICODETEXT); formatics += setCf(CF_TEXT); } diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index a78990e79ba..a6c7f5dde23 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -2485,7 +2485,7 @@ void QStyleSheetStyle::setProperties(QWidget *w) QSet propertySet; for (int i = decls.count() - 1; i >= 0; --i) { const QString property = decls.at(i).d->property; - if (!property.startsWith(QStringLiteral("qproperty-"), Qt::CaseInsensitive)) + if (!property.startsWith(QLatin1String("qproperty-"), Qt::CaseInsensitive)) continue; if (!propertySet.contains(property)) { propertySet.insert(property);