From 727d96511ef58521bd4be0d3acb7ba88df44e762 Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Thu, 6 Jul 2023 08:34:17 -0700 Subject: [PATCH] Fix type of iterator variable in SH_START_ITERATE 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/include/lib/simplehash.h b/src/include/lib/simplehash.h index 48db837ec8c..b7adc16b807 100644 --- a/src/include/lib/simplehash.h +++ b/src/include/lib/simplehash.h @@ -964,7 +964,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; /* @@ -972,7 +971,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]; @@ -983,6 +982,7 @@ SH_START_ITERATE(SH_TYPE * tb, SH_ITERATOR * iter) } } + /* we should have found an empty element */ Assert(startelem < SH_MAX_SIZE); /*