Fix type of iterator variable in SH_START_ITERATE
authorAndres Freund <[email protected]>
Thu, 6 Jul 2023 15:34:17 +0000 (08:34 -0700)
committerAndres Freund <[email protected]>
Thu, 6 Jul 2023 16:57:32 +0000 (09:57 -0700)
Also add comment to make the reasoning behind the Assert() more explicit (per
Tom).

Reported-by: Ranier Vilela
Discussion: https://postgr.es/m/CAEudQAocXNJ6s1VLz+hMamLAQAiewRoW17OJ6-+9GACKfj6iPQ@mail.gmail.com
Backpatch: 11-

src/include/lib/simplehash.h

index 816ee5a0acd37491ae20c2e16830e31bdeda50d7..548526f76159b5e5c02c06c6664a64329f3ce353 100644 (file)
@@ -965,7 +965,6 @@ SH_DELETE_ITEM(SH_TYPE * tb, SH_ELEMENT_TYPE * entry)
 SH_SCOPE void
 SH_START_ITERATE(SH_TYPE * tb, SH_ITERATOR * iter)
 {
-   int         i;
    uint64      startelem = PG_UINT64_MAX;
 
    /*
@@ -973,7 +972,7 @@ SH_START_ITERATE(SH_TYPE * tb, SH_ITERATOR * iter)
     * supported, we want to start/end at an element that cannot be affected
     * by elements being shifted.
     */
-   for (i = 0; i < tb->size; i++)
+   for (uint32 i = 0; i < tb->size; i++)
    {
        SH_ELEMENT_TYPE *entry = &tb->data[i];
 
@@ -984,6 +983,7 @@ SH_START_ITERATE(SH_TYPE * tb, SH_ITERATOR * iter)
        }
    }
 
+   /* we should have found an empty element */
    Assert(startelem < SH_MAX_SIZE);
 
    /*