diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-12 14:15:23 -0800 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-02-15 17:00:04 -0800 |
commit | 832fcbf37f41160947955421522bb4f783059817 (patch) | |
tree | 733d3fa131cfd4d9400f35f9f18e949bd4834b97 /src/corelib/serialization/qcborvalue.cpp | |
parent | 072f0d5717eefeffea3fe72135f9f05135eece71 (diff) |
QCborValue: merge the const operator[] into a template
Change-Id: I5e52dc5b093c43a3b678fffd16b6ec4b7d841955
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/corelib/serialization/qcborvalue.cpp')
-rw-r--r-- | src/corelib/serialization/qcborvalue.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/corelib/serialization/qcborvalue.cpp b/src/corelib/serialization/qcborvalue.cpp index a4ebf31d5e..36d09b05f7 100644 --- a/src/corelib/serialization/qcborvalue.cpp +++ b/src/corelib/serialization/qcborvalue.cpp @@ -2169,9 +2169,7 @@ QCborMap QCborValue::toMap(const QCborMap &defaultValue) const */ const QCborValue QCborValue::operator[](const QString &key) const { - if (isMap()) - return toMap().value(key); - return QCborValue(); + return QCborContainerPrivate::findCborMapKey(*this, qToStringViewIgnoringNull(key)); } /*! @@ -2190,9 +2188,7 @@ const QCborValue QCborValue::operator[](const QString &key) const */ const QCborValue QCborValue::operator[](QLatin1String key) const { - if (isMap()) - return toMap().value(key); - return QCborValue(); + return QCborContainerPrivate::findCborMapKey(*this, key); } /*! @@ -2208,11 +2204,9 @@ const QCborValue QCborValue::operator[](QLatin1String key) const */ const QCborValue QCborValue::operator[](qint64 key) const { - if (isMap()) - return toMap().value(key); - if (isArray()) - return toArray().at(key); - return QCborValue(); + if (isArray() && container && quint64(key) < quint64(container->elements.size())) + return container->valueAt(key); + return QCborContainerPrivate::findCborMapKey(*this, key); } static bool shouldArrayRemainArray(qint64 key, QCborValue::Type t, QCborContainerPrivate *container) |