diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2019-06-15 18:18:13 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2019-06-16 16:06:57 +0200 |
commit | 12938ba70b1277c15cf58eb7f56b58ab37e08849 (patch) | |
tree | 95fc5d5775f633eb0ab33f8990c07efe3b61bce0 /src/corelib/mimetypes/qmimetype.cpp | |
parent | a2632f90db2662b1b7cd4b0d0e4015b22aa05025 (diff) |
QMimeType: make deep const breakages explicit
QExplicitlySharedDataPointer is propagating const in my tree, and I will be proposing
this for inclusion into Qt 6, so proactively fix the breakage here.
QMimeType is known to be non-reentrant (QTBUG-45684), and this patch doesn't fix it.
Change-Id: If68b148c44439d76ab1d95e8db93b90d12650e51
Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/corelib/mimetypes/qmimetype.cpp')
-rw-r--r-- | src/corelib/mimetypes/qmimetype.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/corelib/mimetypes/qmimetype.cpp b/src/corelib/mimetypes/qmimetype.cpp index cf01c9503b..b60ff8e9df 100644 --- a/src/corelib/mimetypes/qmimetype.cpp +++ b/src/corelib/mimetypes/qmimetype.cpp @@ -253,7 +253,7 @@ QString QMimeType::name() const */ QString QMimeType::comment() const { - QMimeDatabasePrivate::instance()->loadMimeTypePrivate(*d); + QMimeDatabasePrivate::instance()->loadMimeTypePrivate(const_cast<QMimeTypePrivate&>(*d)); QStringList languageList; languageList << QLocale().name(); @@ -294,7 +294,7 @@ QString QMimeType::comment() const */ QString QMimeType::genericIconName() const { - QMimeDatabasePrivate::instance()->loadGenericIcon(*d); + QMimeDatabasePrivate::instance()->loadGenericIcon(const_cast<QMimeTypePrivate&>(*d)); if (d->genericIconName.isEmpty()) { // From the spec: // If the generic icon name is empty (not specified by the mimetype definition) @@ -322,13 +322,14 @@ QString QMimeType::genericIconName() const */ QString QMimeType::iconName() const { - QMimeDatabasePrivate::instance()->loadIcon(*d); + QMimeDatabasePrivate::instance()->loadIcon(const_cast<QMimeTypePrivate&>(*d)); if (d->iconName.isEmpty()) { // Make default icon name from the mimetype name - d->iconName = name(); - const int slashindex = d->iconName.indexOf(QLatin1Char('/')); + QString iconName = name(); + const int slashindex = iconName.indexOf(QLatin1Char('/')); if (slashindex != -1) - d->iconName[slashindex] = QLatin1Char('-'); + iconName[slashindex] = QLatin1Char('-'); + const_cast<QMimeType*>(this)->d->iconName = std::move(iconName); } return d->iconName; } @@ -342,7 +343,7 @@ QString QMimeType::iconName() const */ QStringList QMimeType::globPatterns() const { - QMimeDatabasePrivate::instance()->loadMimeTypePrivate(*d); + QMimeDatabasePrivate::instance()->loadMimeTypePrivate(const_cast<QMimeTypePrivate&>(*d)); return d->globPatterns; } @@ -437,7 +438,7 @@ QStringList QMimeType::aliases() const */ QStringList QMimeType::suffixes() const { - QMimeDatabasePrivate::instance()->loadMimeTypePrivate(*d); + QMimeDatabasePrivate::instance()->loadMimeTypePrivate(const_cast<QMimeTypePrivate&>(*d)); QStringList result; for (const QString &pattern : qAsConst(d->globPatterns)) { @@ -480,7 +481,7 @@ QString QMimeType::preferredSuffix() const */ QString QMimeType::filterString() const { - QMimeDatabasePrivate::instance()->loadMimeTypePrivate(*d); + QMimeDatabasePrivate::instance()->loadMimeTypePrivate(const_cast<QMimeTypePrivate&>(*d)); QString filter; if (!d->globPatterns.empty()) { |