From 153ded9b957cd9f906ca8d6c2d6d88bc85407246 Mon Sep 17 00:00:00 2001 From: Igor Kushnir Date: Sat, 11 Dec 2021 19:45:08 +0200 Subject: [PATCH] QMimeDatabasePrivate: remove unused output parameter mimeTypeForFileNameAndData()'s output parameter int *priorityPtr (named differently "accuracyPtr" in the definition) is never used by its callers. Remove it to shorten the code and slightly improve performance. Change-Id: Ibc3d169501e89584b4318074ccb780580dc70fb6 Reviewed-by: Thiago Macieira --- src/corelib/mimetypes/qmimedatabase.cpp | 19 +++++-------------- src/corelib/mimetypes/qmimedatabase_p.h | 2 +- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/corelib/mimetypes/qmimedatabase.cpp b/src/corelib/mimetypes/qmimedatabase.cpp index 5dcdf59453..52fb96886d 100644 --- a/src/corelib/mimetypes/qmimedatabase.cpp +++ b/src/corelib/mimetypes/qmimedatabase.cpp @@ -365,19 +365,17 @@ QMimeType QMimeDatabasePrivate::findByData(const QByteArray &data, int *accuracy return mimeTypeForName(defaultMimeType()); } -QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device, int *accuracyPtr) +QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) { // First, glob patterns are evaluated. If there is a match with max weight, // this one is selected and we are done. Otherwise, the file contents are // evaluated and the match with the highest value (either a magic priority or // a glob pattern weight) is selected. Matching starts from max level (most // specific) in both cases, even when there is already a suffix matching candidate. - *accuracyPtr = 0; // Pass 1) Try to match on the file name QMimeGlobMatchResult candidatesByName = findByFileName(fileName); if (candidatesByName.m_allMatchingMimeTypes.count() == 1) { - *accuracyPtr = 100; const QMimeType mime = mimeTypeForName(candidatesByName.m_matchingMimeTypes.at(0)); if (mime.isValid()) return mime; @@ -386,7 +384,7 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileNa // Extension is unknown, or matches multiple mimetypes. // Pass 2) Match on content, if we can read the data - const auto matchOnContent = [this, accuracyPtr, &candidatesByName](QIODevice *device) { + const auto matchOnContent = [this, &candidatesByName](QIODevice *device) { if (device->isOpen()) { // Read 16K in one go (QIODEVICE_BUFFERSIZE in qiodevice_p.h). // This is much faster than seeking back and forth into QIODevice. @@ -400,19 +398,16 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileNa const QString sniffedMime = candidateByData.name(); // If the sniffedMime matches a highest-weight glob match, use it if (candidatesByName.m_matchingMimeTypes.contains(sniffedMime)) { - *accuracyPtr = 100; return candidateByData; } for (const QString &m : qAsConst(candidatesByName.m_allMatchingMimeTypes)) { if (inherits(m, sniffedMime)) { // We have magic + pattern pointing to this, so it's a pretty good match - *accuracyPtr = 100; return mimeTypeForName(m); } } if (candidatesByName.m_allMatchingMimeTypes.isEmpty()) { // No glob, use magic - *accuracyPtr = magicAccuracy; return candidateByData; } } @@ -420,7 +415,6 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileNa if (candidatesByName.m_allMatchingMimeTypes.count() > 1) { candidatesByName.m_matchingMimeTypes.sort(); // make it deterministic - *accuracyPtr = 20; const QMimeType mime = mimeTypeForName(candidatesByName.m_matchingMimeTypes.at(0)); if (mime.isValid()) return mime; @@ -491,10 +485,9 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFile(const QString &fileName, return mimeTypeForName(QLatin1String("inode/directory")); #endif - int priority = 0; switch (mode) { case QMimeDatabase::MatchDefault: - return mimeTypeForFileNameAndData(fileName, nullptr, &priority); + return mimeTypeForFileNameAndData(fileName, nullptr); case QMimeDatabase::MatchExtension: return mimeTypeForFileExtension(fileName); case QMimeDatabase::MatchContent: { @@ -774,9 +767,8 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, QIO if (fileName.endsWith(QLatin1Char('/'))) return d->mimeTypeForName(QLatin1String("inode/directory")); - int accuracy = 0; const bool openedByUs = !device->isOpen() && device->open(QIODevice::ReadOnly); - const QMimeType result = d->mimeTypeForFileNameAndData(fileName, device, &accuracy); + const QMimeType result = d->mimeTypeForFileNameAndData(fileName, device); if (openedByUs) device->close(); return result; @@ -807,8 +799,7 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, con QBuffer buffer(const_cast(&data)); buffer.open(QIODevice::ReadOnly); - int accuracy = 0; - return d->mimeTypeForFileNameAndData(fileName, &buffer, &accuracy); + return d->mimeTypeForFileNameAndData(fileName, &buffer); } /*! diff --git a/src/corelib/mimetypes/qmimedatabase_p.h b/src/corelib/mimetypes/qmimedatabase_p.h index d5ed61b0b9..ba5997e943 100644 --- a/src/corelib/mimetypes/qmimedatabase_p.h +++ b/src/corelib/mimetypes/qmimedatabase_p.h @@ -93,7 +93,7 @@ public: QString resolveAlias(const QString &nameOrAlias); QStringList parents(const QString &mimeName); QMimeType mimeTypeForName(const QString &nameOrAlias); - QMimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device, int *priorityPtr); + QMimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device); QMimeType mimeTypeForFileExtension(const QString &fileName); QMimeType mimeTypeForData(QIODevice *device); QMimeType mimeTypeForFile(const QString &fileName, const QFileInfo *fileInfo, QMimeDatabase::MatchMode mode);