summaryrefslogtreecommitdiffstats
path: root/src/corelib/mimetypes/qmimetype.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2019-06-15 18:18:13 +0200
committerMarc Mutz <marc.mutz@kdab.com>2019-06-16 16:06:57 +0200
commit12938ba70b1277c15cf58eb7f56b58ab37e08849 (patch)
tree95fc5d5775f633eb0ab33f8990c07efe3b61bce0 /src/corelib/mimetypes/qmimetype.cpp
parenta2632f90db2662b1b7cd4b0d0e4015b22aa05025 (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.cpp19
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()) {