summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2021-11-29 10:02:17 -0800
committerMarc Mutz <marc.mutz@qt.io>2021-11-30 01:42:50 +0000
commit6855b80eae71d8339b2b5d6d45b71f2306293584 (patch)
treed9cf41374002b7e40f11dd181a94fc307bd612f7 /src/corelib/tools
parent60d9509cb00526e8530926b19b2366e584fdf30a (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.h2
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); }