summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qjsonobject.h
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2021-11-27 09:55:34 -0800
committerThiago Macieira <thiago.macieira@intel.com>2022-02-15 17:00:05 -0800
commita747ab0b72cac1bd9b666bdc27d2f40d900f7e9d (patch)
tree6f5b97222a21fc32963ddf174147b215b0b7df27 /src/corelib/serialization/qjsonobject.h
parent01fe59a3b7e6f4203a54f0ae2920cfc43ea3b3c7 (diff)
QJson{Array,Object}: rewrite & simplify some iterator functions
Instead of manipulating indices in multiple functions, make some call the others. This reduces the number of places porting must happen at, if we wanted to. Change-Id: I89446ea06b5742efb194fffd16bb78d24e0528b2 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Diffstat (limited to 'src/corelib/serialization/qjsonobject.h')
-rw-r--r--src/corelib/serialization/qjsonobject.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/corelib/serialization/qjsonobject.h b/src/corelib/serialization/qjsonobject.h
index 74f6905b60..1389f7b472 100644
--- a/src/corelib/serialization/qjsonobject.h
+++ b/src/corelib/serialization/qjsonobject.h
@@ -146,7 +146,7 @@ public:
inline QJsonValueRef operator*() const { return item; }
inline const QJsonValueConstRef *operator->() const { return &item; }
inline QJsonValueRef *operator->() { return &item; }
- const QJsonValueRef operator[](qsizetype j) { return { item.o, qsizetype(item.index) + j }; }
+ inline QJsonValueRef operator[](qsizetype j) const { return *(*this + j); }
inline bool operator==(const iterator &other) const
{ return item.o == other.item.o && item.index == other.item.index; }
@@ -162,8 +162,7 @@ public:
inline iterator operator++(int) { iterator r = *this; ++item.index; return r; }
inline iterator &operator--() { --item.index; return *this; }
inline iterator operator--(int) { iterator r = *this; --item.index; return r; }
- inline iterator operator+(qsizetype j) const
- { iterator r = *this; r.item.index += quint64(j); return r; }
+ inline iterator operator+(qsizetype j) const { iterator r = *this; return r += j; }
inline iterator operator-(qsizetype j) const { return operator+(-j); }
inline iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }
@@ -212,7 +211,7 @@ public:
inline QJsonValueConstRef value() const { return item; }
inline const QJsonValueConstRef operator*() const { return item; }
inline const QJsonValueConstRef *operator->() const { return &item; }
- const QJsonValueConstRef operator[](qsizetype j) { return { item.o, qsizetype(item.index) + j }; }
+ inline QJsonValueConstRef operator[](qsizetype j) const { return *(*this + j); }
inline bool operator==(const const_iterator &other) const
{ return item.o == other.item.o && item.index == other.item.index; }
@@ -228,8 +227,7 @@ public:
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--(int) { const_iterator r = *this; --item.index; return r; }
- inline const_iterator operator+(qsizetype j) const
- { const_iterator r = *this; r.item.index += quint64(j); return r; }
+ inline const_iterator operator+(qsizetype j) const { const_iterator r = *this; return r += j; }
inline const_iterator operator-(qsizetype j) const { return operator+(-j); }
inline const_iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; }
inline const_iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; }