diff --git a/src/corelib/kernel/qjniarray.h b/src/corelib/kernel/qjniarray.h index a448b68d4bc..66688c393d1 100644 --- a/src/corelib/kernel/qjniarray.h +++ b/src/corelib/kernel/qjniarray.h @@ -19,6 +19,8 @@ template class QJniArray; template struct QJniArrayIterator { + QJniArrayIterator() = default; + constexpr QJniArrayIterator(const QJniArrayIterator &other) noexcept = default; constexpr QJniArrayIterator(QJniArrayIterator &&other) noexcept = default; constexpr QJniArrayIterator &operator=(const QJniArrayIterator &other) noexcept = default; @@ -49,13 +51,13 @@ struct QJniArrayIterator } private: - friend class QJniArray; + using VT = std::remove_const_t; + friend class QJniArray; qsizetype m_index = 0; - const QJniArray *m_array = nullptr; + const QJniArray *m_array = nullptr; - QJniArrayIterator() = delete; - QJniArrayIterator(qsizetype index, const QJniArray *array) + QJniArrayIterator(qsizetype index, const QJniArray *array) : m_index(index), m_array(array) {} }; @@ -154,7 +156,7 @@ class QJniArray : public QJniArrayBase friend struct QJniArrayIterator; public: using Type = T; - using const_iterator = const QJniArrayIterator; + using const_iterator = QJniArrayIterator; QJniArray() = default; explicit QJniArray(jarray array) : QJniArrayBase(array) {} diff --git a/tests/auto/corelib/kernel/qjniarray/tst_qjniarray.cpp b/tests/auto/corelib/kernel/qjniarray/tst_qjniarray.cpp index 3d2fb662418..fe41fae3ff6 100644 --- a/tests/auto/corelib/kernel/qjniarray/tst_qjniarray.cpp +++ b/tests/auto/corelib/kernel/qjniarray/tst_qjniarray.cpp @@ -17,6 +17,7 @@ public: private slots: void size(); + void operators(); }; using namespace QtJniTypes; @@ -85,6 +86,22 @@ void tst_QJniArray::size() QCOMPARE(intArray.size(), 10); } +void tst_QJniArray::operators() +{ + QByteArray bytes("abcde"); + QJniArray array(bytes); + QVERIFY(array.isValid()); + + { + QJniArray::const_iterator it = {}; + QCOMPARE(it, QJniArray::const_iterator{}); + QCOMPARE_NE(array.begin(), array.end()); + + it = array.begin(); + QCOMPARE(it, array.begin()); + } +} + QTEST_MAIN(tst_QJniArray) #include "tst_qjniarray.moc"