diff options
author | David Faure <david.faure@kdab.com> | 2017-10-08 21:20:24 +0200 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2017-11-30 12:54:43 +0000 |
commit | 916266a7b3538c3d31abe245ee84e691934fab40 (patch) | |
tree | 272d3ab9561c91bfa9c43089a1aa872d9c87a886 /src/corelib/mimetypes/qmimedatabase_p.h | |
parent | 2c062546a21edc68ded82b7b852df3c993d332e0 (diff) |
QMimeDatabase: ensure mutex is locked in provider()
This wasn't the case when called from QMimeType, or some
QMimeDatabase methods. Now fixed.
Change-Id: Ifd515c1520482e4a23c399f1f773269659c92359
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/mimetypes/qmimedatabase_p.h')
-rw-r--r-- | src/corelib/mimetypes/qmimedatabase_p.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/corelib/mimetypes/qmimedatabase_p.h b/src/corelib/mimetypes/qmimedatabase_p.h index 3f63f5f103..5dfcf31237 100644 --- a/src/corelib/mimetypes/qmimedatabase_p.h +++ b/src/corelib/mimetypes/qmimedatabase_p.h @@ -77,9 +77,6 @@ public: static QMimeDatabasePrivate *instance(); - QMimeProviderBase *provider(); - void setProvider(QMimeProviderBase *theProvider); - inline QString defaultMimeType() const { return m_defaultMimeType; } bool inherits(const QString &mime, const QString &parent); @@ -91,8 +88,22 @@ public: QMimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device, int *priorityPtr); QMimeType findByData(const QByteArray &data, int *priorityPtr); QStringList mimeTypeForFileName(const QString &fileName); + QMimeGlobMatchResult findByFileName(const QString &fileName); + + // API for QMimeType. Takes care of locking the mutex. + void loadMimeTypePrivate(QMimeTypePrivate &mimePrivate); + void loadGenericIcon(QMimeTypePrivate &mimePrivate); + void loadIcon(QMimeTypePrivate &mimePrivate); + QStringList parents(const QString &mimeName); + QStringList listAliases(const QString &mimeName); + bool mimeInherits(const QString &mime, const QString &parent); + +private: + QMimeProviderBase *provider(); mutable QMimeProviderBase *m_provider; + +public: const QString m_defaultMimeType; QMutex mutex; }; |