summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2022-02-15 14:23:31 +0100
committerMårten Nordheim <marten.nordheim@qt.io>2022-02-16 18:22:28 +0100
commit8e6e090813158ade2598036773d0ecda6817ab7f (patch)
tree84fc0dd4a5906b3e47537e5662c615324613619a
parentd9504b2219db35d154ee2211ef9807c48c1ce41b (diff)
downloadqtbase-8e6e090813158ade2598036773d0ecda6817ab7f.tar.gz
QHash: fix off-by-one in assertions
Coverity-Id: 378365 Coverity-Id: 378366 Coverity-Id: 378399 Coverity-Id: 378427 Coverity-Id: 378468 Coverity-Id: 378472 Change-Id: Ib1efeacb59030b9d004320e56f560367f564d207 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit a1fb3971f222afa01583e41f4d8f0e037d2c7892)
-rw-r--r--src/corelib/tools/qhash.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 831a11be59..3190a2e34e 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -331,7 +331,7 @@ struct Span {
}
Node *insert(size_t i)
{
- Q_ASSERT(i <= NEntries);
+ Q_ASSERT(i < NEntries);
Q_ASSERT(offsets[i] == UnusedEntry);
if (nextFree == allocated)
addStorage();
@@ -343,7 +343,7 @@ struct Span {
}
void erase(size_t bucket) noexcept(std::is_nothrow_destructible<Node>::value)
{
- Q_ASSERT(bucket <= NEntries);
+ Q_ASSERT(bucket < NEntries);
Q_ASSERT(offsets[bucket] != UnusedEntry);
unsigned char entry = offsets[bucket];
@@ -363,14 +363,14 @@ struct Span {
}
Node &at(size_t i) noexcept
{
- Q_ASSERT(i <= NEntries);
+ Q_ASSERT(i < NEntries);
Q_ASSERT(offsets[i] != UnusedEntry);
return entries[offsets[i]].node();
}
const Node &at(size_t i) const noexcept
{
- Q_ASSERT(i <= NEntries);
+ Q_ASSERT(i < NEntries);
Q_ASSERT(offsets[i] != UnusedEntry);
return entries[offsets[i]].node();
@@ -396,9 +396,9 @@ struct Span {
}
void moveFromSpan(Span &fromSpan, size_t fromIndex, size_t to) noexcept(std::is_nothrow_move_constructible_v<Node>)
{
- Q_ASSERT(to <= NEntries);
+ Q_ASSERT(to < NEntries);
Q_ASSERT(offsets[to] == UnusedEntry);
- Q_ASSERT(fromIndex <= NEntries);
+ Q_ASSERT(fromIndex < NEntries);
Q_ASSERT(fromSpan.offsets[fromIndex] != UnusedEntry);
if (nextFree == allocated)
addStorage();