QMimeDatabase: fix assert when fetching data for invalid mimetype
The Q_ASSERT(mimePrivate.fromCache) at qmimedatabase.cpp:218 which I added in commit 7a5644d648, was being triggered when calling comment() for invalid mimetypes such as db.mimeTypeForName(""). Change-Id: I8037041a4b435d2a5ba24ec94b7858e38b2f0bf2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
e729ac6dc5
commit
a1b1dd3b84
@ -214,6 +214,8 @@ QMimeGlobMatchResult QMimeDatabasePrivate::findByFileName(const QString &fileNam
|
||||
void QMimeDatabasePrivate::loadMimeTypePrivate(QMimeTypePrivate &mimePrivate)
|
||||
{
|
||||
QMutexLocker locker(&mutex);
|
||||
if (mimePrivate.name.isEmpty())
|
||||
return; // invalid mimetype
|
||||
if (!mimePrivate.loaded) { // XML provider sets loaded=true, binary provider does this on demand
|
||||
Q_ASSERT(mimePrivate.fromCache);
|
||||
QMimeBinaryProvider::loadMimeTypePrivate(mimePrivate);
|
||||
|
@ -214,6 +214,8 @@ void tst_QMimeDatabase::mimeTypeForName()
|
||||
|
||||
QMimeType doesNotExist = db.mimeTypeForName(QString::fromLatin1("foobar/x-doesnot-exist"));
|
||||
QVERIFY(!doesNotExist.isValid());
|
||||
QCOMPARE(doesNotExist.comment(), QString());
|
||||
QCOMPARE(doesNotExist.aliases(), QStringList());
|
||||
|
||||
// TODO move to findByFile
|
||||
#ifdef Q_OS_LINUX
|
||||
|
Loading…
x
Reference in New Issue
Block a user