QVariantHash/Map can't hold multiple entries for the same key in Qt 6

This is a consequence of QHash being separated from QMultiHash.

Change-Id: Id3bb585c9882ecbaa02691c8ba6553748dd21a24
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
Lars Knoll 2020-01-17 14:42:00 +01:00
parent 0b325602b1
commit 91b12a1add
2 changed files with 2 additions and 2 deletions

View File

@ -972,7 +972,7 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
const QVariantMap *map = v_cast<QVariantMap>(d);
const auto end = map->end();
for (auto it = map->begin(); it != end; ++it)
static_cast<QMultiHash<QString, QVariant> *>(hash)->insert(it.key(), it.value());
hash->insert(it.key(), it.value());
#ifndef QT_BOOTSTRAPPED
} else if (d->type == QMetaType::QCborValue) {
if (!v_cast<QCborValue>(d)->isMap())

View File

@ -818,7 +818,7 @@ namespace QtPrivate {
QVariantHash l;
l.reserve(iter.size());
for (QAssociativeIterable::const_iterator it = iter.begin(), end = iter.end(); it != end; ++it)
static_cast<QMultiHash<QString, QVariant> &>(l).insert(it.key().toString(), it.value());
l.insert(it.key().toString(), it.value());
return l;
}
return QVariantValueHelper<QVariantHash>::invoke(v);