QMimeDatabasePrivate: construct QString from QStringLiteral

In the changed code no QLatin1String overloads exist, so replacing
QLatin1String with QStringLiteral improves performance by eliminating
allocations.

Change-Id: I77530fe72c309b0609f40b1dc34189bd3454c813
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
bb10
Igor Kushnir 2021-12-12 12:02:37 +02:00
parent b45141a4c6
commit 1efae2dcad
1 changed files with 16 additions and 16 deletions

View File

@ -69,7 +69,7 @@ QMimeDatabasePrivate *QMimeDatabasePrivate::instance()
}
QMimeDatabasePrivate::QMimeDatabasePrivate()
: m_defaultMimeType(QLatin1String("application/octet-stream"))
: m_defaultMimeType(QStringLiteral("application/octet-stream"))
{
}
@ -99,7 +99,7 @@ bool QMimeDatabasePrivate::shouldCheck()
void QMimeDatabasePrivate::loadProviders()
{
// We use QStandardPaths every time to check if new files appeared
const QStringList mimeDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime"), QStandardPaths::LocateDirectory);
const QStringList mimeDirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("mime"), QStandardPaths::LocateDirectory);
const auto fdoIterator = std::find_if(mimeDirs.constBegin(), mimeDirs.constEnd(), [](const QString &mimeDir) -> bool {
return QFileInfo::exists(mimeDir + QLatin1String("/packages/freedesktop.org.xml")); }
);
@ -205,7 +205,7 @@ QMimeType QMimeDatabasePrivate::mimeTypeForName(const QString &nameOrAlias)
QStringList QMimeDatabasePrivate::mimeTypeForFileName(const QString &fileName)
{
if (fileName.endsWith(QLatin1Char('/')))
return QStringList() << QLatin1String("inode/directory");
return QStringList() << QStringLiteral("inode/directory");
const QMimeGlobMatchResult result = findByFileName(fileName);
QStringList matchingMimeTypes = result.m_matchingMimeTypes;
@ -240,7 +240,7 @@ void QMimeDatabasePrivate::loadMimeTypePrivate(QMimeTypePrivate &mimePrivate)
const QString file = mimePrivate.name + QLatin1String(".xml");
qWarning() << "No file found for" << file << ", even though update-mime-info said it would exist.\n"
"Either it was just removed, or the directory doesn't have executable permission..."
<< QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QLatin1String("mime"), QStandardPaths::LocateDirectory);
<< QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("mime"), QStandardPaths::LocateDirectory);
}
mimePrivate.loaded = true;
}
@ -277,13 +277,13 @@ static QString fallbackParent(const QString &mimeTypeName)
const QStringView myGroup = QStringView{mimeTypeName}.left(mimeTypeName.indexOf(QLatin1Char('/')));
// All text/* types are subclasses of text/plain.
if (myGroup == QLatin1String("text") && mimeTypeName != QLatin1String("text/plain"))
return QLatin1String("text/plain");
return QStringLiteral("text/plain");
// All real-file mimetypes implicitly derive from application/octet-stream
if (myGroup != QLatin1String("inode") &&
// ignore non-file extensions
myGroup != QLatin1String("all") && myGroup != QLatin1String("fonts") && myGroup != QLatin1String("print") && myGroup != QLatin1String("uri")
&& mimeTypeName != QLatin1String("application/octet-stream")) {
return QLatin1String("application/octet-stream");
return QStringLiteral("application/octet-stream");
}
return QString();
}
@ -346,7 +346,7 @@ QMimeType QMimeDatabasePrivate::findByData(const QByteArray &data, int *accuracy
{
if (data.isEmpty()) {
*accuracyPtr = 100;
return mimeTypeForName(QLatin1String("application/x-zerosize"));
return mimeTypeForName(QStringLiteral("application/x-zerosize"));
}
*accuracyPtr = 0;
@ -359,7 +359,7 @@ QMimeType QMimeDatabasePrivate::findByData(const QByteArray &data, int *accuracy
if (isTextFile(data)) {
*accuracyPtr = 5;
return mimeTypeForName(QLatin1String("text/plain"));
return mimeTypeForName(QStringLiteral("text/plain"));
}
return mimeTypeForName(defaultMimeType());
@ -469,20 +469,20 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFile(const QString &fileName,
QT_STATBUF statBuffer;
if (QT_STAT(nativeFilePath.constData(), &statBuffer) == 0) {
if (S_ISDIR(statBuffer.st_mode))
return mimeTypeForName(QLatin1String("inode/directory"));
return mimeTypeForName(QStringLiteral("inode/directory"));
if (S_ISCHR(statBuffer.st_mode))
return mimeTypeForName(QLatin1String("inode/chardevice"));
return mimeTypeForName(QStringLiteral("inode/chardevice"));
if (S_ISBLK(statBuffer.st_mode))
return mimeTypeForName(QLatin1String("inode/blockdevice"));
return mimeTypeForName(QStringLiteral("inode/blockdevice"));
if (S_ISFIFO(statBuffer.st_mode))
return mimeTypeForName(QLatin1String("inode/fifo"));
return mimeTypeForName(QStringLiteral("inode/fifo"));
if (S_ISSOCK(statBuffer.st_mode))
return mimeTypeForName(QLatin1String("inode/socket"));
return mimeTypeForName(QStringLiteral("inode/socket"));
}
#else
const bool isDirectory = fileInfo ? fileInfo->isDir() : QFileInfo(fileName).isDir();
if (isDirectory)
return mimeTypeForName(QLatin1String("inode/directory"));
return mimeTypeForName(QStringLiteral("inode/directory"));
#endif
switch (mode) {
@ -764,7 +764,7 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, QIO
QMutexLocker locker(&d->mutex);
if (fileName.endsWith(QLatin1Char('/')))
return d->mimeTypeForName(QLatin1String("inode/directory"));
return d->mimeTypeForName(QStringLiteral("inode/directory"));
const bool openedByUs = !device->isOpen() && device->open(QIODevice::ReadOnly);
const QMimeType result = d->mimeTypeForFileNameAndData(fileName, device);
@ -794,7 +794,7 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, con
QMutexLocker locker(&d->mutex);
if (fileName.endsWith(QLatin1Char('/')))
return d->mimeTypeForName(QLatin1String("inode/directory"));
return d->mimeTypeForName(QStringLiteral("inode/directory"));
QBuffer buffer(const_cast<QByteArray *>(&data));
buffer.open(QIODevice::ReadOnly);