diff options
| author | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-27 09:55:34 -0800 |
|---|---|---|
| committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-02-15 17:00:05 -0800 |
| commit | a747ab0b72cac1bd9b666bdc27d2f40d900f7e9d (patch) | |
| tree | 6f5b97222a21fc32963ddf174147b215b0b7df27 /src/corelib/serialization/qjsonarray.h | |
| parent | 01fe59a3b7e6f4203a54f0ae2920cfc43ea3b3c7 (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/qjsonarray.h')
| -rw-r--r-- | src/corelib/serialization/qjsonarray.h | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/corelib/serialization/qjsonarray.h b/src/corelib/serialization/qjsonarray.h index a8c37605658..d8a7e2e12b7 100644 --- a/src/corelib/serialization/qjsonarray.h +++ b/src/corelib/serialization/qjsonarray.h @@ -128,8 +128,7 @@ public: inline QJsonValueRef operator*() const { return item; } inline const QJsonValueConstRef *operator->() const { return &item; } inline QJsonValueRef *operator->() { return &item; } - inline QJsonValueRef operator[](qsizetype j) const - { return { item.a, qsizetype(item.index) + j }; } + inline QJsonValueRef operator[](qsizetype j) const { return *(*this + j); } inline bool operator==(const iterator &o) const { return item.a == o.item.a && item.index == o.item.index; } @@ -155,10 +154,8 @@ public: inline iterator operator--(int) { iterator n = *this; item.index--; return n; } inline iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; } inline iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; } - inline iterator operator+(qsizetype j) const - { return iterator(item.a, qsizetype(item.index) + j); } - inline iterator operator-(qsizetype j) const - { return iterator(item.a, qsizetype(item.index) - j); } + inline iterator operator+(qsizetype j) const { iterator r = *this; return r += j; } + inline iterator operator-(qsizetype j) const { return operator+(-j); } inline qsizetype operator-(iterator j) const { return item.index - j.item.index; } private: @@ -191,8 +188,7 @@ public: inline const QJsonValueConstRef operator*() const { return item; } inline const QJsonValueConstRef *operator->() const { return &item; } - inline QJsonValueConstRef operator[](qsizetype j) const - { return QJsonValueRef{ item.a, qsizetype(item.index) + j }; } + inline QJsonValueConstRef operator[](qsizetype j) const { return *(*this + j); } inline bool operator==(const const_iterator &o) const { return item.a == o.item.a && item.index == o.item.index; } inline bool operator!=(const const_iterator &o) const { return !(*this == o); } @@ -208,10 +204,8 @@ public: inline const_iterator operator--(int) { const_iterator n = *this; item.index--; return n; } inline const_iterator &operator+=(qsizetype j) { item.index += quint64(j); return *this; } inline const_iterator &operator-=(qsizetype j) { item.index -= quint64(j); return *this; } - inline const_iterator operator+(qsizetype j) const - { return const_iterator(item.a, qsizetype(item.index) + j); } - inline const_iterator operator-(qsizetype j) const - { return const_iterator(item.a, qsizetype(item.index) - j); } + 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 qsizetype operator-(const_iterator j) const { return item.index - j.item.index; } private: |
