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)
|
void QMimeDatabasePrivate::loadMimeTypePrivate(QMimeTypePrivate &mimePrivate)
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&mutex);
|
QMutexLocker locker(&mutex);
|
||||||
|
if (mimePrivate.name.isEmpty())
|
||||||
|
return; // invalid mimetype
|
||||||
if (!mimePrivate.loaded) { // XML provider sets loaded=true, binary provider does this on demand
|
if (!mimePrivate.loaded) { // XML provider sets loaded=true, binary provider does this on demand
|
||||||
Q_ASSERT(mimePrivate.fromCache);
|
Q_ASSERT(mimePrivate.fromCache);
|
||||||
QMimeBinaryProvider::loadMimeTypePrivate(mimePrivate);
|
QMimeBinaryProvider::loadMimeTypePrivate(mimePrivate);
|
||||||
|
@ -214,6 +214,8 @@ void tst_QMimeDatabase::mimeTypeForName()
|
|||||||
|
|
||||||
QMimeType doesNotExist = db.mimeTypeForName(QString::fromLatin1("foobar/x-doesnot-exist"));
|
QMimeType doesNotExist = db.mimeTypeForName(QString::fromLatin1("foobar/x-doesnot-exist"));
|
||||||
QVERIFY(!doesNotExist.isValid());
|
QVERIFY(!doesNotExist.isValid());
|
||||||
|
QCOMPARE(doesNotExist.comment(), QString());
|
||||||
|
QCOMPARE(doesNotExist.aliases(), QStringList());
|
||||||
|
|
||||||
// TODO move to findByFile
|
// TODO move to findByFile
|
||||||
#ifdef Q_OS_LINUX
|
#ifdef Q_OS_LINUX
|
||||||
|
Loading…
x
Reference in New Issue
Block a user