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
parent
b45141a4c6
commit
1efae2dcad
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue