diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-29 10:02:17 -0800 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2021-11-30 01:42:50 +0000 |
commit | 6855b80eae71d8339b2b5d6d45b71f2306293584 (patch) | |
tree | d9cf41374002b7e40f11dd181a94fc307bd612f7 /src/corelib/tools | |
parent | 60d9509cb00526e8530926b19b2366e584fdf30a (diff) |
QList::count(T): remove the &* hack on iterators
Use data() and data() + size() instead.
This solves an UB when the list is in its default-constructed state,
for which constData() == nullptr.
Pick-to: 6.2
Fixes: QTBUG-98770
Change-Id: I2cffe62afda945079b63fffd16bc165978c769f6
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r-- | src/corelib/tools/qlist.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h index 9b2a56a66a..5f6b77e8ce 100644 --- a/src/corelib/tools/qlist.h +++ b/src/corelib/tools/qlist.h @@ -585,7 +585,7 @@ public: template <typename AT = T> qsizetype count(const AT &t) const noexcept { - return qsizetype(std::count(&*cbegin(), &*cend(), t)); + return qsizetype(std::count(data(), data() + size(), t)); } void removeAt(qsizetype i) { remove(i); } |