Use qsizetype for size in QJsonArray and QJsonObject

Change-Id: I126b7e817f076486910777bb4e3354487ad670cd
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Sona Kurazyan 2020-08-05 15:53:48 +02:00
parent 1fc7ca091b
commit af5e8c2e97
9 changed files with 140 additions and 133 deletions

View File

@ -129,7 +129,7 @@ struct ObjectIterator
ObjectIterator &operator-=(difference_type n) { it -= 2 * n; return *this; } ObjectIterator &operator-=(difference_type n) { it -= 2 * n; return *this; }
reference operator*() const { return *it; } reference operator*() const { return *it; }
reference operator[](int n) const { return it[n * 2]; } reference operator[](qsizetype n) const { return it[n * 2]; }
bool operator<(ObjectIterator other) const { return it < other.it; } bool operator<(ObjectIterator other) const { return it < other.it; }
bool operator>(ObjectIterator other) const { return it > other.it; } bool operator>(ObjectIterator other) const { return it > other.it; }
@ -149,7 +149,7 @@ inline ObjectIterator<Element, ElementsIterator> operator+(
} }
template<typename Element, typename ElementsIterator> template<typename Element, typename ElementsIterator>
inline ObjectIterator<Element, ElementsIterator> operator+( inline ObjectIterator<Element, ElementsIterator> operator+(
int n, ObjectIterator<Element, ElementsIterator> a) qsizetype n, ObjectIterator<Element, ElementsIterator> a)
{ {
return {a.elementsIterator() + 2 * n}; return {a.elementsIterator() + 2 * n};
} }
@ -161,7 +161,7 @@ inline ObjectIterator<Element, ElementsIterator> operator-(
return {a.elementsIterator() - 2 * n}; return {a.elementsIterator() - 2 * n};
} }
template<typename Element, typename ElementsIterator> template<typename Element, typename ElementsIterator>
inline int operator-( inline qsizetype operator-(
ObjectIterator<Element, ElementsIterator> a, ObjectIterator<Element, ElementsIterator> a,
ObjectIterator<Element, ElementsIterator> b) ObjectIterator<Element, ElementsIterator> b)
{ {

View File

@ -93,7 +93,7 @@ QT_BEGIN_NAMESPACE
/*! /*!
\typedef QJsonArray::size_type \typedef QJsonArray::size_type
Typedef for int. Provided for STL compatibility. Typedef for qsizetype. Provided for STL compatibility.
*/ */
/*! /*!
@ -105,7 +105,7 @@ QT_BEGIN_NAMESPACE
/*! /*!
\typedef QJsonArray::difference_type \typedef QJsonArray::difference_type
Typedef for int. Provided for STL compatibility. Typedef for qsizetype. Provided for STL compatibility.
*/ */
/*! /*!
@ -285,7 +285,7 @@ QVariantList QJsonArray::toVariantList() const
/*! /*!
Returns the number of values stored in the array. Returns the number of values stored in the array.
*/ */
int QJsonArray::size() const qsizetype QJsonArray::size() const
{ {
return a ? a->elements.size() : 0; return a ? a->elements.size() : 0;
} }
@ -314,7 +314,7 @@ bool QJsonArray::isEmpty() const
The returned QJsonValue is \c Undefined, if \a i is out of bounds. The returned QJsonValue is \c Undefined, if \a i is out of bounds.
*/ */
QJsonValue QJsonArray::at(int i) const QJsonValue QJsonArray::at(qsizetype i) const
{ {
if (!a || i < 0 || i >= a->elements.size()) if (!a || i < 0 || i >= a->elements.size())
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
@ -374,7 +374,7 @@ void QJsonArray::append(const QJsonValue &value)
\sa insert(), replace() \sa insert(), replace()
*/ */
void QJsonArray::removeAt(int i) void QJsonArray::removeAt(qsizetype i)
{ {
if (!a || i < 0 || i >= a->elements.length()) if (!a || i < 0 || i >= a->elements.length())
return; return;
@ -410,7 +410,7 @@ void QJsonArray::removeAt(int i)
\sa removeAt() \sa removeAt()
*/ */
QJsonValue QJsonArray::takeAt(int i) QJsonValue QJsonArray::takeAt(qsizetype i)
{ {
if (!a || i < 0 || i >= a->elements.length()) if (!a || i < 0 || i >= a->elements.length())
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
@ -428,7 +428,7 @@ QJsonValue QJsonArray::takeAt(int i)
\sa append(), prepend(), replace(), removeAt() \sa append(), prepend(), replace(), removeAt()
*/ */
void QJsonArray::insert(int i, const QJsonValue &value) void QJsonArray::insert(qsizetype i, const QJsonValue &value)
{ {
if (a) if (a)
detach(a->elements.length() + 1); detach(a->elements.length() + 1);
@ -464,7 +464,7 @@ void QJsonArray::insert(int i, const QJsonValue &value)
\sa operator[](), removeAt() \sa operator[](), removeAt()
*/ */
void QJsonArray::replace(int i, const QJsonValue &value) void QJsonArray::replace(qsizetype i, const QJsonValue &value)
{ {
Q_ASSERT (a && i >= 0 && i < a->elements.length()); Q_ASSERT (a && i >= 0 && i < a->elements.length());
detach(); detach();
@ -478,7 +478,7 @@ void QJsonArray::replace(int i, const QJsonValue &value)
*/ */
bool QJsonArray::contains(const QJsonValue &value) const bool QJsonArray::contains(const QJsonValue &value) const
{ {
for (int i = 0; i < size(); i++) { for (qsizetype i = 0; i < size(); i++) {
if (at(i) == value) if (at(i) == value)
return true; return true;
} }
@ -498,7 +498,7 @@ bool QJsonArray::contains(const QJsonValue &value) const
\sa at() \sa at()
*/ */
QJsonValueRef QJsonArray::operator [](int i) QJsonValueRef QJsonArray::operator [](qsizetype i)
{ {
Q_ASSERT(a && i >= 0 && i < a->elements.length()); Q_ASSERT(a && i >= 0 && i < a->elements.length());
return QJsonValueRef(this, i); return QJsonValueRef(this, i);
@ -509,7 +509,7 @@ QJsonValueRef QJsonArray::operator [](int i)
Same as at(). Same as at().
*/ */
QJsonValue QJsonArray::operator[](int i) const QJsonValue QJsonArray::operator[](qsizetype i) const
{ {
return at(i); return at(i);
} }
@ -529,7 +529,7 @@ bool QJsonArray::operator==(const QJsonArray &other) const
if (a->elements.length() != other.a->elements.length()) if (a->elements.length() != other.a->elements.length())
return false; return false;
for (int i = 0; i < a->elements.length(); ++i) { for (qsizetype i = 0; i < a->elements.length(); ++i) {
if (a->valueAt(i) != other.a->valueAt(i)) if (a->valueAt(i) != other.a->valueAt(i))
return false; return false;
} }
@ -700,7 +700,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa QJsonArray::begin(), QJsonArray::end() \sa QJsonArray::begin(), QJsonArray::end()
*/ */
/*! \fn QJsonArray::iterator::iterator(QJsonArray *array, int index) /*! \fn QJsonArray::iterator::iterator(QJsonArray *array, qsizetype index)
\internal \internal
*/ */
@ -724,7 +724,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
Returns a pointer to a modifiable reference to the current item. Returns a pointer to a modifiable reference to the current item.
*/ */
/*! \fn QJsonValueRef QJsonArray::iterator::operator[](int j) const /*! \fn QJsonValueRef QJsonArray::iterator::operator[](qsizetype j) const
Returns a modifiable reference to the item at offset \a j from the Returns a modifiable reference to the item at offset \a j from the
item pointed to by this iterator (the item at position \c{*this + j}). item pointed to by this iterator (the item at position \c{*this + j}).
@ -831,7 +831,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
current and returns an iterator to the previously current item. current and returns an iterator to the previously current item.
*/ */
/*! \fn QJsonArray::iterator &QJsonArray::iterator::operator+=(int j) /*! \fn QJsonArray::iterator &QJsonArray::iterator::operator+=(qsizetype j)
Advances the iterator by \a j items. If \a j is negative, the Advances the iterator by \a j items. If \a j is negative, the
iterator goes backward. iterator goes backward.
@ -839,7 +839,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator-=(), operator+() \sa operator-=(), operator+()
*/ */
/*! \fn QJsonArray::iterator &QJsonArray::iterator::operator-=(int j) /*! \fn QJsonArray::iterator &QJsonArray::iterator::operator-=(qsizetype j)
Makes the iterator go back by \a j items. If \a j is negative, Makes the iterator go back by \a j items. If \a j is negative,
the iterator goes forward. the iterator goes forward.
@ -847,7 +847,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator+=(), operator-() \sa operator+=(), operator-()
*/ */
/*! \fn QJsonArray::iterator QJsonArray::iterator::operator+(int j) const /*! \fn QJsonArray::iterator QJsonArray::iterator::operator+(qsizetype j) const
Returns an iterator to the item at \a j positions forward from Returns an iterator to the item at \a j positions forward from
this iterator. If \a j is negative, the iterator goes backward. this iterator. If \a j is negative, the iterator goes backward.
@ -855,7 +855,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator-(), operator+=() \sa operator-(), operator+=()
*/ */
/*! \fn QJsonArray::iterator QJsonArray::iterator::operator-(int j) const /*! \fn QJsonArray::iterator QJsonArray::iterator::operator-(qsizetype j) const
Returns an iterator to the item at \a j positions backward from Returns an iterator to the item at \a j positions backward from
this iterator. If \a j is negative, the iterator goes forward. this iterator. If \a j is negative, the iterator goes forward.
@ -863,7 +863,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator+(), operator-=() \sa operator+(), operator-=()
*/ */
/*! \fn int QJsonArray::iterator::operator-(iterator other) const /*! \fn qsizetype QJsonArray::iterator::operator-(iterator other) const
Returns the number of items between the item pointed to by \a Returns the number of items between the item pointed to by \a
other and the item pointed to by this iterator. other and the item pointed to by this iterator.
@ -909,7 +909,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa QJsonArray::constBegin(), QJsonArray::constEnd() \sa QJsonArray::constBegin(), QJsonArray::constEnd()
*/ */
/*! \fn QJsonArray::const_iterator::const_iterator(const QJsonArray *array, int index) /*! \fn QJsonArray::const_iterator::const_iterator(const QJsonArray *array, qsizetype index)
\internal \internal
*/ */
@ -954,7 +954,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
Returns a pointer to the current item. Returns a pointer to the current item.
*/ */
/*! \fn QJsonValue QJsonArray::const_iterator::operator[](int j) const /*! \fn QJsonValue QJsonArray::const_iterator::operator[](qsizetype j) const
Returns the item at offset \a j from the item pointed to by this iterator (the item at Returns the item at offset \a j from the item pointed to by this iterator (the item at
position \c{*this + j}). position \c{*this + j}).
@ -1047,7 +1047,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
current and returns an iterator to the previously current item. current and returns an iterator to the previously current item.
*/ */
/*! \fn QJsonArray::const_iterator &QJsonArray::const_iterator::operator+=(int j) /*! \fn QJsonArray::const_iterator &QJsonArray::const_iterator::operator+=(qsizetype j)
Advances the iterator by \a j items. If \a j is negative, the Advances the iterator by \a j items. If \a j is negative, the
iterator goes backward. iterator goes backward.
@ -1055,7 +1055,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator-=(), operator+() \sa operator-=(), operator+()
*/ */
/*! \fn QJsonArray::const_iterator &QJsonArray::const_iterator::operator-=(int j) /*! \fn QJsonArray::const_iterator &QJsonArray::const_iterator::operator-=(qsizetype j)
Makes the iterator go back by \a j items. If \a j is negative, Makes the iterator go back by \a j items. If \a j is negative,
the iterator goes forward. the iterator goes forward.
@ -1063,7 +1063,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator+=(), operator-() \sa operator+=(), operator-()
*/ */
/*! \fn QJsonArray::const_iterator QJsonArray::const_iterator::operator+(int j) const /*! \fn QJsonArray::const_iterator QJsonArray::const_iterator::operator+(qsizetype j) const
Returns an iterator to the item at \a j positions forward from Returns an iterator to the item at \a j positions forward from
this iterator. If \a j is negative, the iterator goes backward. this iterator. If \a j is negative, the iterator goes backward.
@ -1071,7 +1071,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator-(), operator+=() \sa operator-(), operator+=()
*/ */
/*! \fn QJsonArray::const_iterator QJsonArray::const_iterator::operator-(int j) const /*! \fn QJsonArray::const_iterator QJsonArray::const_iterator::operator-(qsizetype j) const
Returns an iterator to the item at \a j positions backward from Returns an iterator to the item at \a j positions backward from
this iterator. If \a j is negative, the iterator goes forward. this iterator. If \a j is negative, the iterator goes forward.
@ -1079,7 +1079,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
\sa operator+(), operator-=() \sa operator+(), operator-=()
*/ */
/*! \fn int QJsonArray::const_iterator::operator-(const_iterator other) const /*! \fn qsizetype QJsonArray::const_iterator::operator-(const_iterator other) const
Returns the number of items between the item pointed to by \a Returns the number of items between the item pointed to by \a
other and the item pointed to by this iterator. other and the item pointed to by this iterator.
@ -1088,7 +1088,7 @@ bool QJsonArray::operator!=(const QJsonArray &other) const
/*! /*!
\internal \internal
*/ */
bool QJsonArray::detach(uint reserve) bool QJsonArray::detach(qsizetype reserve)
{ {
if (!a) if (!a)
return true; return true;

View File

@ -75,27 +75,27 @@ public:
static QJsonArray fromVariantList(const QVariantList &list); static QJsonArray fromVariantList(const QVariantList &list);
QVariantList toVariantList() const; QVariantList toVariantList() const;
int size() const; qsizetype size() const;
inline int count() const { return size(); } inline qsizetype count() const { return size(); }
bool isEmpty() const; bool isEmpty() const;
QJsonValue at(int i) const; QJsonValue at(qsizetype i) const;
QJsonValue first() const; QJsonValue first() const;
QJsonValue last() const; QJsonValue last() const;
void prepend(const QJsonValue &value); void prepend(const QJsonValue &value);
void append(const QJsonValue &value); void append(const QJsonValue &value);
void removeAt(int i); void removeAt(qsizetype i);
QJsonValue takeAt(int i); QJsonValue takeAt(qsizetype i);
inline void removeFirst() { removeAt(0); } inline void removeFirst() { removeAt(0); }
inline void removeLast() { removeAt(size() - 1); } inline void removeLast() { removeAt(size() - 1); }
void insert(int i, const QJsonValue &value); void insert(qsizetype i, const QJsonValue &value);
void replace(int i, const QJsonValue &value); void replace(qsizetype i, const QJsonValue &value);
bool contains(const QJsonValue &element) const; bool contains(const QJsonValue &element) const;
QJsonValueRef operator[](int i); QJsonValueRef operator[](qsizetype i);
QJsonValue operator[](int i) const; QJsonValue operator[](qsizetype i) const;
bool operator==(const QJsonArray &other) const; bool operator==(const QJsonArray &other) const;
bool operator!=(const QJsonArray &other) const; bool operator!=(const QJsonArray &other) const;
@ -110,13 +110,13 @@ public:
class iterator { class iterator {
public: public:
typedef std::random_access_iterator_tag iterator_category; typedef std::random_access_iterator_tag iterator_category;
typedef int difference_type; typedef qsizetype difference_type;
typedef QJsonValue value_type; typedef QJsonValue value_type;
typedef QJsonValueRef reference; typedef QJsonValueRef reference;
typedef QJsonValueRef *pointer; typedef QJsonValueRef *pointer;
inline iterator() : item(static_cast<QJsonArray *>(nullptr), 0) { } inline iterator() : item(static_cast<QJsonArray *>(nullptr), 0) { }
explicit inline iterator(QJsonArray *array, int index) : item(array, index) { } explicit inline iterator(QJsonArray *array, qsizetype index) : item(array, index) { }
constexpr iterator(const iterator &other) = default; constexpr iterator(const iterator &other) = default;
iterator &operator=(const iterator &other) iterator &operator=(const iterator &other)
@ -128,7 +128,8 @@ public:
inline QJsonValueRef operator*() const { return item; } inline QJsonValueRef operator*() const { return item; }
inline QJsonValueRef *operator->() const { return &item; } inline QJsonValueRef *operator->() const { return &item; }
inline QJsonValueRef operator[](int j) const { return { item.a, int(item.index) + j }; } inline QJsonValueRef operator[](qsizetype j) const
{ return { item.a, qsizetype(item.index) + j }; }
inline bool operator==(const iterator &o) const inline bool operator==(const iterator &o) const
{ return item.a == o.item.a && item.index == o.item.index; } { return item.a == o.item.a && item.index == o.item.index; }
@ -152,11 +153,13 @@ public:
inline iterator operator++(int) { iterator n = *this; ++item.index; return n; } inline iterator operator++(int) { iterator n = *this; ++item.index; return n; }
inline iterator &operator--() { item.index--; return *this; } inline iterator &operator--() { item.index--; return *this; }
inline iterator operator--(int) { iterator n = *this; item.index--; return n; } inline iterator operator--(int) { iterator n = *this; item.index--; return n; }
inline iterator &operator+=(int j) { item.index += j; return *this; } inline iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline iterator &operator-=(int j) { item.index -= j; return *this; } inline iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }
inline iterator operator+(int j) const { return iterator(item.a, item.index + j); } inline iterator operator+(qsizetype j) const
inline iterator operator-(int j) const { return iterator(item.a, item.index - j); } { return iterator(item.a, qsizetype(item.index) + j); }
inline int operator-(iterator j) const { return item.index - j.item.index; } inline iterator operator-(qsizetype j) const
{ return iterator(item.a, qsizetype(item.index) - j); }
inline qsizetype operator-(iterator j) const { return item.index - j.item.index; }
private: private:
mutable QJsonValueRef item; mutable QJsonValueRef item;
@ -173,7 +176,7 @@ public:
typedef const QJsonValueRef *pointer; typedef const QJsonValueRef *pointer;
inline const_iterator() : item(static_cast<QJsonArray *>(nullptr), 0) { } inline const_iterator() : item(static_cast<QJsonArray *>(nullptr), 0) { }
explicit inline const_iterator(const QJsonArray *array, int index) explicit inline const_iterator(const QJsonArray *array, qsizetype index)
: item(const_cast<QJsonArray *>(array), index) { } : item(const_cast<QJsonArray *>(array), index) { }
inline const_iterator(const iterator &o) : item(o.item) { } inline const_iterator(const iterator &o) : item(o.item) { }
@ -188,7 +191,8 @@ public:
inline const QJsonValueRef operator*() const { return item; } inline const QJsonValueRef operator*() const { return item; }
inline const QJsonValueRef *operator->() const { return &item; } inline const QJsonValueRef *operator->() const { return &item; }
inline QJsonValueRef operator[](int j) const { return { item.a, int(item.index) + j }; } inline QJsonValueRef operator[](qsizetype j) const
{ return { item.a, qsizetype(item.index) + j }; }
inline bool operator==(const const_iterator &o) const inline bool operator==(const const_iterator &o) const
{ return item.a == o.item.a && item.index == o.item.index; } { return item.a == o.item.a && item.index == o.item.index; }
inline bool operator!=(const const_iterator &o) const { return !(*this == o); } inline bool operator!=(const const_iterator &o) const { return !(*this == o); }
@ -202,11 +206,13 @@ public:
inline const_iterator operator++(int) { const_iterator n = *this; ++item.index; return n; } inline const_iterator operator++(int) { const_iterator n = *this; ++item.index; return n; }
inline const_iterator &operator--() { item.index--; return *this; } inline const_iterator &operator--() { item.index--; return *this; }
inline const_iterator operator--(int) { const_iterator n = *this; item.index--; return n; } inline const_iterator operator--(int) { const_iterator n = *this; item.index--; return n; }
inline const_iterator &operator+=(int j) { item.index += j; return *this; } inline const_iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline const_iterator &operator-=(int j) { item.index -= j; return *this; } inline const_iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }
inline const_iterator operator+(int j) const { return const_iterator(item.a, item.index + j); } inline const_iterator operator+(qsizetype j) const
inline const_iterator operator-(int j) const { return const_iterator(item.a, item.index - j); } { return const_iterator(item.a, qsizetype(item.index) + j); }
inline int operator-(const_iterator j) const { return item.index - j.item.index; } inline const_iterator operator-(qsizetype j) const
{ return const_iterator(item.a, qsizetype(item.index) - j); }
inline qsizetype operator-(const_iterator j) const { return item.index - j.item.index; }
private: private:
QJsonValueRef item; QJsonValueRef item;
@ -246,13 +252,13 @@ public:
inline void pop_front() { removeFirst(); } inline void pop_front() { removeFirst(); }
inline void pop_back() { removeLast(); } inline void pop_back() { removeLast(); }
inline bool empty() const { return isEmpty(); } inline bool empty() const { return isEmpty(); }
typedef int size_type; typedef qsizetype size_type;
typedef QJsonValue value_type; typedef QJsonValue value_type;
typedef value_type *pointer; typedef value_type *pointer;
typedef const value_type *const_pointer; typedef const value_type *const_pointer;
typedef QJsonValueRef reference; typedef QJsonValueRef reference;
typedef QJsonValue const_reference; typedef QJsonValue const_reference;
typedef int difference_type; typedef qsizetype difference_type;
private: private:
friend class QJsonValue; friend class QJsonValue;
@ -261,7 +267,7 @@ private:
friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonArray &); friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonArray &);
QJsonArray(QCborContainerPrivate *array); QJsonArray(QCborContainerPrivate *array);
bool detach(uint reserve = 0); bool detach(qsizetype reserve = 0);
QExplicitlySharedDataPointer<QCborContainerPrivate> a; QExplicitlySharedDataPointer<QCborContainerPrivate> a;
}; };

View File

@ -482,7 +482,7 @@ const QJsonValue QJsonDocument::operator[](QLatin1String key) const
\sa QJsonValue, QJsonValue::isUndefined(), QJsonArray \sa QJsonValue, QJsonValue::isUndefined(), QJsonArray
*/ */
const QJsonValue QJsonDocument::operator[](int i) const const QJsonValue QJsonDocument::operator[](qsizetype i) const
{ {
if (!isArray()) if (!isArray())
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);

View File

@ -135,7 +135,7 @@ public:
#endif #endif
const QJsonValue operator[](QStringView key) const; const QJsonValue operator[](QStringView key) const;
const QJsonValue operator[](QLatin1String key) const; const QJsonValue operator[](QLatin1String key) const;
const QJsonValue operator[](int i) const; const QJsonValue operator[](qsizetype i) const;
bool operator==(const QJsonDocument &other) const; bool operator==(const QJsonDocument &other) const;
bool operator!=(const QJsonDocument &other) const { return !(*this == other); } bool operator!=(const QJsonDocument &other) const { return !(*this == other); }

View File

@ -106,7 +106,7 @@ QT_BEGIN_NAMESPACE
/*! /*!
\typedef QJsonObject::size_type \typedef QJsonObject::size_type
Typedef for int. Provided for STL compatibility. Typedef for qsizetype. Provided for STL compatibility.
*/ */
@ -272,7 +272,7 @@ QStringList QJsonObject::keys() const
QStringList keys; QStringList keys;
if (o) { if (o) {
keys.reserve(o->elements.length() / 2); keys.reserve(o->elements.length() / 2);
for (int i = 0, end = o->elements.length(); i < end; i += 2) for (qsizetype i = 0, end = o->elements.length(); i < end; i += 2)
keys.append(o->stringAt(i)); keys.append(o->stringAt(i));
} }
return keys; return keys;
@ -281,7 +281,7 @@ QStringList QJsonObject::keys() const
/*! /*!
Returns the number of (key, value) pairs stored in the object. Returns the number of (key, value) pairs stored in the object.
*/ */
int QJsonObject::size() const qsizetype QJsonObject::size() const
{ {
return o ? o->elements.length() / 2 : 0; return o ? o->elements.length() / 2 : 0;
} }
@ -297,8 +297,8 @@ bool QJsonObject::isEmpty() const
} }
template<typename String> template<typename String>
static int indexOf(const QExplicitlySharedDataPointer<QCborContainerPrivate> &o, static qsizetype indexOf(const QExplicitlySharedDataPointer<QCborContainerPrivate> &o,
String key, bool *keyExists) String key, bool *keyExists)
{ {
const auto begin = QJsonPrivate::ConstKeyIterator(o->elements.constBegin()); const auto begin = QJsonPrivate::ConstKeyIterator(o->elements.constBegin());
const auto end = QJsonPrivate::ConstKeyIterator(o->elements.constEnd()); const auto end = QJsonPrivate::ConstKeyIterator(o->elements.constEnd());
@ -355,7 +355,7 @@ QJsonValue QJsonObject::valueImpl(T key) const
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
bool keyExists; bool keyExists;
int i = indexOf(o, key, &keyExists); auto i = indexOf(o, key, &keyExists);
if (!keyExists) if (!keyExists)
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
return QJsonPrivate::Value::fromTrustedCbor(o->valueAt(i + 1)); return QJsonPrivate::Value::fromTrustedCbor(o->valueAt(i + 1));
@ -439,7 +439,7 @@ QJsonValueRef QJsonObject::atImpl(T key)
o = new QCborContainerPrivate; o = new QCborContainerPrivate;
bool keyExists = false; bool keyExists = false;
int index = indexOf(o, key, &keyExists); auto index = indexOf(o, key, &keyExists);
if (!keyExists) { if (!keyExists) {
detach(o->elements.length() / 2 + 1); detach(o->elements.length() / 2 + 1);
o->insertAt(index, key); o->insertAt(index, key);
@ -498,7 +498,7 @@ QJsonObject::iterator QJsonObject::insertImpl(T key, const QJsonValue &value)
return end(); return end();
} }
bool keyExists = false; bool keyExists = false;
int pos = o ? indexOf(o, key, &keyExists) : 0; auto pos = o ? indexOf(o, key, &keyExists) : 0;
return insertAt(pos, key, value, keyExists); return insertAt(pos, key, value, keyExists);
} }
@ -506,7 +506,7 @@ QJsonObject::iterator QJsonObject::insertImpl(T key, const QJsonValue &value)
\internal \internal
*/ */
template <typename T> template <typename T>
QJsonObject::iterator QJsonObject::insertAt(int pos, T key, const QJsonValue &value, bool keyExists) QJsonObject::iterator QJsonObject::insertAt(qsizetype pos, T key, const QJsonValue &value, bool keyExists)
{ {
if (o) if (o)
detach(o->elements.length() / 2 + (keyExists ? 0 : 1)); detach(o->elements.length() / 2 + (keyExists ? 0 : 1));
@ -562,7 +562,7 @@ void QJsonObject::removeImpl(T key)
return; return;
bool keyExists; bool keyExists;
int index = indexOf(o, key, &keyExists); auto index = indexOf(o, key, &keyExists);
if (!keyExists) if (!keyExists)
return; return;
@ -613,7 +613,7 @@ QJsonValue QJsonObject::takeImpl(T key)
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
bool keyExists; bool keyExists;
int index = indexOf(o, key, &keyExists); auto index = indexOf(o, key, &keyExists);
if (!keyExists) if (!keyExists)
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
@ -681,7 +681,7 @@ bool QJsonObject::operator==(const QJsonObject &other) const
if (o->elements.length() != other.o->elements.length()) if (o->elements.length() != other.o->elements.length())
return false; return false;
for (int i = 0, end = o->elements.length(); i < end; ++i) { for (qsizetype i = 0, end = o->elements.length(); i < end; ++i) {
if (o->valueAt(i) != other.o->valueAt(i)) if (o->valueAt(i) != other.o->valueAt(i))
return false; return false;
} }
@ -706,8 +706,8 @@ bool QJsonObject::operator!=(const QJsonObject &other) const
*/ */
QJsonObject::iterator QJsonObject::erase(QJsonObject::iterator it) QJsonObject::iterator QJsonObject::erase(QJsonObject::iterator it)
{ {
if (it.item.o != this || it.item.index < 0 || it.item.index >= o->elements.length()) if (it.item.o != this || qsizetype(it.item.index) >= o->elements.length())
return {this, int(o->elements.length())}; return {this, o->elements.length()};
removeAt(it.item.index); removeAt(it.item.index);
@ -754,7 +754,7 @@ template <typename T>
QJsonObject::iterator QJsonObject::findImpl(T key) QJsonObject::iterator QJsonObject::findImpl(T key)
{ {
bool keyExists = false; bool keyExists = false;
int index = o ? indexOf(o, key, &keyExists) : 0; auto index = o ? indexOf(o, key, &keyExists) : 0;
if (!keyExists) if (!keyExists)
return end(); return end();
detach(); detach();
@ -819,20 +819,20 @@ template <typename T>
QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
{ {
bool keyExists = false; bool keyExists = false;
int index = o ? indexOf(o, key, &keyExists) : 0; auto index = o ? indexOf(o, key, &keyExists) : 0;
if (!keyExists) if (!keyExists)
return end(); return end();
return {this, index / 2}; return {this, index / 2};
} }
/*! \fn int QJsonObject::count() const /*! \fn qsizetype QJsonObject::count() const
\overload \overload
Same as size(). Same as size().
*/ */
/*! \fn int QJsonObject::length() const /*! \fn qsizetype QJsonObject::length() const
\overload \overload
@ -956,7 +956,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa QJsonObject::begin(), QJsonObject::end() \sa QJsonObject::begin(), QJsonObject::end()
*/ */
/*! \fn QJsonObject::iterator::iterator(QJsonObject *obj, int index) /*! \fn QJsonObject::iterator::iterator(QJsonObject *obj, qsizetype index)
\internal \internal
*/ */
@ -1007,7 +1007,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
Returns a pointer to a modifiable reference to the current item. Returns a pointer to a modifiable reference to the current item.
*/ */
/*! \fn const QJsonValueRef QJsonObject::iterator::operator[](int j) /*! \fn const QJsonValueRef QJsonObject::iterator::operator[](qsizetype j)
Returns a modifiable reference to the item at offset \a j from the Returns a modifiable reference to the item at offset \a j from the
item pointed to by this iterator (the item at position \c{*this + j}). item pointed to by this iterator (the item at position \c{*this + j}).
@ -1116,7 +1116,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
current item. current item.
*/ */
/*! \fn QJsonObject::iterator QJsonObject::iterator::operator+(int j) const /*! \fn QJsonObject::iterator QJsonObject::iterator::operator+(qsizetype j) const
Returns an iterator to the item at \a j positions forward from Returns an iterator to the item at \a j positions forward from
this iterator. If \a j is negative, the iterator goes backward. this iterator. If \a j is negative, the iterator goes backward.
@ -1125,7 +1125,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
*/ */
/*! \fn QJsonObject::iterator QJsonObject::iterator::operator-(int j) const /*! \fn QJsonObject::iterator QJsonObject::iterator::operator-(qsizetype j) const
Returns an iterator to the item at \a j positions backward from Returns an iterator to the item at \a j positions backward from
this iterator. If \a j is negative, the iterator goes forward. this iterator. If \a j is negative, the iterator goes forward.
@ -1133,7 +1133,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator+() \sa operator+()
*/ */
/*! \fn QJsonObject::iterator &QJsonObject::iterator::operator+=(int j) /*! \fn QJsonObject::iterator &QJsonObject::iterator::operator+=(qsizetype j)
Advances the iterator by \a j items. If \a j is negative, the Advances the iterator by \a j items. If \a j is negative, the
iterator goes backward. iterator goes backward.
@ -1141,7 +1141,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator-=(), operator+() \sa operator-=(), operator+()
*/ */
/*! \fn QJsonObject::iterator &QJsonObject::iterator::operator-=(int j) /*! \fn QJsonObject::iterator &QJsonObject::iterator::operator-=(qsizetype j)
Makes the iterator go back by \a j items. If \a j is negative, Makes the iterator go back by \a j items. If \a j is negative,
the iterator goes forward. the iterator goes forward.
@ -1149,7 +1149,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator+=(), operator-() \sa operator+=(), operator-()
*/ */
/*! \fn int QJsonObject::iterator::operator-(iterator other) const /*! \fn qsizetype QJsonObject::iterator::operator-(iterator other) const
Returns the number of items between the item pointed to by \a Returns the number of items between the item pointed to by \a
other and the item pointed to by this iterator. other and the item pointed to by this iterator.
@ -1221,7 +1221,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa QJsonObject::constBegin(), QJsonObject::constEnd() \sa QJsonObject::constBegin(), QJsonObject::constEnd()
*/ */
/*! \fn QJsonObject::const_iterator::const_iterator(const QJsonObject *obj, int index) /*! \fn QJsonObject::const_iterator::const_iterator(const QJsonObject *obj, qsizetype index)
\internal \internal
*/ */
@ -1258,7 +1258,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
Returns a pointer to the current item. Returns a pointer to the current item.
*/ */
/*! \fn const QJsonValue QJsonObject::const_iterator::operator[](int j) /*! \fn const QJsonValue QJsonObject::const_iterator::operator[](qsizetype j)
Returns the item at offset \a j from the item pointed to by this iterator (the item at Returns the item at offset \a j from the item pointed to by this iterator (the item at
position \c{*this + j}). position \c{*this + j}).
@ -1356,7 +1356,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
current item. current item.
*/ */
/*! \fn QJsonObject::const_iterator QJsonObject::const_iterator::operator+(int j) const /*! \fn QJsonObject::const_iterator QJsonObject::const_iterator::operator+(qsizetype j) const
Returns an iterator to the item at \a j positions forward from Returns an iterator to the item at \a j positions forward from
this iterator. If \a j is negative, the iterator goes backward. this iterator. If \a j is negative, the iterator goes backward.
@ -1366,7 +1366,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator-() \sa operator-()
*/ */
/*! \fn QJsonObject::const_iterator QJsonObject::const_iterator::operator-(int j) const /*! \fn QJsonObject::const_iterator QJsonObject::const_iterator::operator-(qsizetype j) const
Returns an iterator to the item at \a j positions backward from Returns an iterator to the item at \a j positions backward from
this iterator. If \a j is negative, the iterator goes forward. this iterator. If \a j is negative, the iterator goes forward.
@ -1376,7 +1376,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator+() \sa operator+()
*/ */
/*! \fn QJsonObject::const_iterator &QJsonObject::const_iterator::operator+=(int j) /*! \fn QJsonObject::const_iterator &QJsonObject::const_iterator::operator+=(qsizetype j)
Advances the iterator by \a j items. If \a j is negative, the Advances the iterator by \a j items. If \a j is negative, the
iterator goes backward. iterator goes backward.
@ -1386,7 +1386,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator-=(), operator+() \sa operator-=(), operator+()
*/ */
/*! \fn QJsonObject::const_iterator &QJsonObject::const_iterator::operator-=(int j) /*! \fn QJsonObject::const_iterator &QJsonObject::const_iterator::operator-=(qsizetype j)
Makes the iterator go back by \a j items. If \a j is negative, Makes the iterator go back by \a j items. If \a j is negative,
the iterator goes forward. the iterator goes forward.
@ -1396,7 +1396,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
\sa operator+=(), operator-() \sa operator+=(), operator-()
*/ */
/*! \fn int QJsonObject::const_iterator::operator-(const_iterator other) const /*! \fn qsizetype QJsonObject::const_iterator::operator-(const_iterator other) const
Returns the number of items between the item pointed to by \a Returns the number of items between the item pointed to by \a
other and the item pointed to by this iterator. other and the item pointed to by this iterator.
@ -1406,7 +1406,7 @@ QJsonObject::const_iterator QJsonObject::constFindImpl(T key) const
/*! /*!
\internal \internal
*/ */
bool QJsonObject::detach(uint reserve) bool QJsonObject::detach(qsizetype reserve)
{ {
if (!o) if (!o)
return true; return true;
@ -1417,7 +1417,7 @@ bool QJsonObject::detach(uint reserve)
/*! /*!
\internal \internal
*/ */
QString QJsonObject::keyAt(int i) const QString QJsonObject::keyAt(qsizetype i) const
{ {
Q_ASSERT(o && i >= 0 && i * 2 < o->elements.length()); Q_ASSERT(o && i >= 0 && i * 2 < o->elements.length());
return o->stringAt(i * 2); return o->stringAt(i * 2);
@ -1426,7 +1426,7 @@ QString QJsonObject::keyAt(int i) const
/*! /*!
\internal \internal
*/ */
QJsonValue QJsonObject::valueAt(int i) const QJsonValue QJsonObject::valueAt(qsizetype i) const
{ {
if (!o || i < 0 || 2 * i + 1 >= o->elements.length()) if (!o || i < 0 || 2 * i + 1 >= o->elements.length())
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);
@ -1436,7 +1436,7 @@ QJsonValue QJsonObject::valueAt(int i) const
/*! /*!
\internal \internal
*/ */
void QJsonObject::setValueAt(int i, const QJsonValue &val) void QJsonObject::setValueAt(qsizetype i, const QJsonValue &val)
{ {
Q_ASSERT(o && i >= 0 && 2 * i + 1 < o->elements.length()); Q_ASSERT(o && i >= 0 && 2 * i + 1 < o->elements.length());
detach(); detach();
@ -1451,7 +1451,7 @@ void QJsonObject::setValueAt(int i, const QJsonValue &val)
/*! /*!
\internal \internal
*/ */
void QJsonObject::removeAt(int index) void QJsonObject::removeAt(qsizetype index)
{ {
detach(); detach();
o->removeAt(2 * index + 1); o->removeAt(2 * index + 1);

View File

@ -87,9 +87,9 @@ public:
QVariantHash toVariantHash() const; QVariantHash toVariantHash() const;
QStringList keys() const; QStringList keys() const;
int size() const; qsizetype size() const;
inline int count() const { return size(); } inline qsizetype count() const { return size(); }
inline int length() const { return size(); } inline qsizetype length() const { return size(); }
bool isEmpty() const; bool isEmpty() const;
#if QT_STRINGVIEW_LEVEL < 2 #if QT_STRINGVIEW_LEVEL < 2
@ -129,13 +129,13 @@ public:
public: public:
typedef std::random_access_iterator_tag iterator_category; typedef std::random_access_iterator_tag iterator_category;
typedef int difference_type; typedef qsizetype difference_type;
typedef QJsonValue value_type; typedef QJsonValue value_type;
typedef QJsonValueRef reference; typedef QJsonValueRef reference;
typedef QJsonValueRef *pointer; typedef QJsonValueRef *pointer;
inline iterator() : item(static_cast<QJsonObject*>(nullptr), 0) { } inline iterator() : item(static_cast<QJsonObject*>(nullptr), 0) { }
inline iterator(QJsonObject *obj, int index) : item(obj, index) { } inline iterator(QJsonObject *obj, qsizetype index) : item(obj, index) { }
constexpr iterator(const iterator &other) = default; constexpr iterator(const iterator &other) = default;
iterator &operator=(const iterator &other) iterator &operator=(const iterator &other)
@ -149,7 +149,7 @@ public:
inline QJsonValueRef value() const { return item; } inline QJsonValueRef value() const { return item; }
inline QJsonValueRef operator*() const { return item; } inline QJsonValueRef operator*() const { return item; }
inline QJsonValueRef *operator->() const { return &item; } inline QJsonValueRef *operator->() const { return &item; }
const QJsonValueRef operator[](int j) { return { item.o, int(item.index) + j }; } const QJsonValueRef operator[](qsizetype j) { return { item.o, qsizetype(item.index) + j }; }
inline bool operator==(const iterator &other) const inline bool operator==(const iterator &other) const
{ return item.o == other.item.o && item.index == other.item.index; } { return item.o == other.item.o && item.index == other.item.index; }
@ -165,12 +165,12 @@ public:
inline iterator operator++(int) { iterator r = *this; ++item.index; return r; } inline iterator operator++(int) { iterator r = *this; ++item.index; return r; }
inline iterator &operator--() { --item.index; return *this; } inline iterator &operator--() { --item.index; return *this; }
inline iterator operator--(int) { iterator r = *this; --item.index; return r; } inline iterator operator--(int) { iterator r = *this; --item.index; return r; }
inline iterator operator+(int j) const inline iterator operator+(qsizetype j) const
{ iterator r = *this; r.item.index += j; return r; } { iterator r = *this; r.item.index += quint64(j); return r; }
inline iterator operator-(int j) const { return operator+(-j); } inline iterator operator-(qsizetype j) const { return operator+(-j); }
inline iterator &operator+=(int j) { item.index += j; return *this; } inline iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline iterator &operator-=(int j) { item.index -= j; return *this; } inline iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }
int operator-(iterator j) const { return item.index - j.item.index; } qsizetype operator-(iterator j) const { return item.index - j.item.index; }
public: public:
inline bool operator==(const const_iterator &other) const inline bool operator==(const const_iterator &other) const
@ -192,13 +192,13 @@ public:
public: public:
typedef std::random_access_iterator_tag iterator_category; typedef std::random_access_iterator_tag iterator_category;
typedef int difference_type; typedef qsizetype difference_type;
typedef QJsonValue value_type; typedef QJsonValue value_type;
typedef const QJsonValueRef reference; typedef const QJsonValueRef reference;
typedef const QJsonValueRef *pointer; typedef const QJsonValueRef *pointer;
inline const_iterator() : item(static_cast<QJsonObject*>(nullptr), 0) { } inline const_iterator() : item(static_cast<QJsonObject*>(nullptr), 0) { }
inline const_iterator(const QJsonObject *obj, int index) inline const_iterator(const QJsonObject *obj, qsizetype index)
: item(const_cast<QJsonObject*>(obj), index) { } : item(const_cast<QJsonObject*>(obj), index) { }
inline const_iterator(const iterator &other) inline const_iterator(const iterator &other)
: item(other.item) { } : item(other.item) { }
@ -215,7 +215,7 @@ public:
inline QJsonValueRef value() const { return item; } inline QJsonValueRef value() const { return item; }
inline const QJsonValueRef operator*() const { return item; } inline const QJsonValueRef operator*() const { return item; }
inline const QJsonValueRef *operator->() const { return &item; } inline const QJsonValueRef *operator->() const { return &item; }
const QJsonValueRef operator[](int j) { return { item.o, int(item.index) + j }; } const QJsonValueRef operator[](qsizetype j) { return { item.o, qsizetype(item.index) + j }; }
inline bool operator==(const const_iterator &other) const inline bool operator==(const const_iterator &other) const
{ return item.o == other.item.o && item.index == other.item.index; } { return item.o == other.item.o && item.index == other.item.index; }
@ -231,12 +231,12 @@ public:
inline const_iterator operator++(int) { const_iterator r = *this; ++item.index; return r; } inline const_iterator operator++(int) { const_iterator r = *this; ++item.index; return r; }
inline const_iterator &operator--() { --item.index; return *this; } inline const_iterator &operator--() { --item.index; return *this; }
inline const_iterator operator--(int) { const_iterator r = *this; --item.index; return r; } inline const_iterator operator--(int) { const_iterator r = *this; --item.index; return r; }
inline const_iterator operator+(int j) const inline const_iterator operator+(qsizetype j) const
{ const_iterator r = *this; r.item.index += j; return r; } { const_iterator r = *this; r.item.index += quint64(j); return r; }
inline const_iterator operator-(int j) const { return operator+(-j); } inline const_iterator operator-(qsizetype j) const { return operator+(-j); }
inline const_iterator &operator+=(int j) { item.index += j; return *this; } inline const_iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline const_iterator &operator-=(int j) { item.index -= j; return *this; } inline const_iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }
int operator-(const_iterator j) const { return item.index - j.item.index; } qsizetype operator-(const_iterator j) const { return item.index - j.item.index; }
inline bool operator==(const iterator &other) const inline bool operator==(const iterator &other) const
{ return item.o == other.item.o && item.index == other.item.index; } { return item.o == other.item.o && item.index == other.item.index; }
@ -280,7 +280,7 @@ public:
// STL compatibility // STL compatibility
typedef QJsonValue mapped_type; typedef QJsonValue mapped_type;
typedef QString key_type; typedef QString key_type;
typedef int size_type; typedef qsizetype size_type;
inline bool empty() const { return isEmpty(); } inline bool empty() const { return isEmpty(); }
@ -292,7 +292,7 @@ private:
friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &); friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &);
QJsonObject(QCborContainerPrivate *object); QJsonObject(QCborContainerPrivate *object);
bool detach(uint reserve = 0); bool detach(qsizetype reserve = 0);
template <typename T> QJsonValue valueImpl(T key) const; template <typename T> QJsonValue valueImpl(T key) const;
template <typename T> QJsonValueRef atImpl(T key); template <typename T> QJsonValueRef atImpl(T key);
@ -303,11 +303,11 @@ private:
template <typename T> const_iterator constFindImpl(T key) const; template <typename T> const_iterator constFindImpl(T key) const;
template <typename T> iterator insertImpl(T key, const QJsonValue &value); template <typename T> iterator insertImpl(T key, const QJsonValue &value);
QString keyAt(int i) const; QString keyAt(qsizetype i) const;
QJsonValue valueAt(int i) const; QJsonValue valueAt(qsizetype i) const;
void setValueAt(int i, const QJsonValue &val); void setValueAt(qsizetype i, const QJsonValue &val);
void removeAt(int i); void removeAt(qsizetype i);
template <typename T> iterator insertAt(int i, T key, const QJsonValue &val, bool exists); template <typename T> iterator insertAt(qsizetype i, T key, const QJsonValue &val, bool exists);
QExplicitlySharedDataPointer<QCborContainerPrivate> o; QExplicitlySharedDataPointer<QCborContainerPrivate> o;
}; };

View File

@ -101,7 +101,7 @@ QT_BEGIN_NAMESPACE
The following methods return QJsonValueRef: The following methods return QJsonValueRef:
\list \list
\li \l {QJsonArray}::operator[](int i) \li \l {QJsonArray}::operator[](qsizetype i)
\li \l {QJsonObject}::operator[](const QString & key) const \li \l {QJsonObject}::operator[](const QString & key) const
\endlist \endlist
@ -840,7 +840,7 @@ const QJsonValue QJsonValue::operator[](QLatin1String key) const
\sa QJsonValue, QJsonValue::isUndefined(), QJsonArray \sa QJsonValue, QJsonValue::isUndefined(), QJsonArray
*/ */
const QJsonValue QJsonValue::operator[](int i) const const QJsonValue QJsonValue::operator[](qsizetype i) const
{ {
if (!isArray()) if (!isArray())
return QJsonValue(QJsonValue::Undefined); return QJsonValue(QJsonValue::Undefined);

View File

@ -126,7 +126,7 @@ public:
#endif #endif
const QJsonValue operator[](QStringView key) const; const QJsonValue operator[](QStringView key) const;
const QJsonValue operator[](QLatin1String key) const; const QJsonValue operator[](QLatin1String key) const;
const QJsonValue operator[](int i) const; const QJsonValue operator[](qsizetype i) const;
bool operator==(const QJsonValue &other) const; bool operator==(const QJsonValue &other) const;
bool operator!=(const QJsonValue &other) const; bool operator!=(const QJsonValue &other) const;
@ -159,10 +159,10 @@ private:
class Q_CORE_EXPORT QJsonValueRef class Q_CORE_EXPORT QJsonValueRef
{ {
public: public:
QJsonValueRef(QJsonArray *array, int idx) QJsonValueRef(QJsonArray *array, qsizetype idx)
: a(array), is_object(false), index(static_cast<uint>(idx)) {} : a(array), is_object(false), index(static_cast<quint64>(idx)) {}
QJsonValueRef(QJsonObject *object, int idx) QJsonValueRef(QJsonObject *object, qsizetype idx)
: o(object), is_object(true), index(static_cast<uint>(idx)) {} : o(object), is_object(true), index(static_cast<quint64>(idx)) {}
QJsonValueRef(const QJsonValueRef &) = default; QJsonValueRef(const QJsonValueRef &) = default;
@ -182,6 +182,7 @@ public:
inline bool toBool(bool defaultValue = false) const { return toValue().toBool(defaultValue); } inline bool toBool(bool defaultValue = false) const { return toValue().toBool(defaultValue); }
inline int toInt(int defaultValue = 0) const { return toValue().toInt(defaultValue); } inline int toInt(int defaultValue = 0) const { return toValue().toInt(defaultValue); }
inline qint64 toInteger(qint64 defaultValue = 0) const { return toValue().toInteger(defaultValue); }
inline double toDouble(double defaultValue = 0) const { return toValue().toDouble(defaultValue); } inline double toDouble(double defaultValue = 0) const { return toValue().toDouble(defaultValue); }
inline QString toString(const QString &defaultValue = {}) const { return toValue().toString(defaultValue); } inline QString toString(const QString &defaultValue = {}) const { return toValue().toString(defaultValue); }
QJsonArray toArray() const; QJsonArray toArray() const;
@ -197,8 +198,8 @@ private:
QJsonArray *a; QJsonArray *a;
QJsonObject *o; QJsonObject *o;
}; };
uint is_object : 1; quint64 is_object : 1;
uint index : 31; quint64 index : 63;
friend class QJsonArray; friend class QJsonArray;
friend class QJsonObject; friend class QJsonObject;