Fix ILIST_DEBUG build
In c8ad4d8166
dlist_member_check()'s arguments were made const. Unfortunately
the implementation of dlist_member_check() used dlist_foreach(), which
currently doesn't work for const lists.
As a workaround, open-code the list iteration. The other check functions
already do so.
Discussion: https://postgr.es/m/20230118182214.co7dp4oahiunwg57@awork3.anarazel.de
This commit is contained in:
parent
47bb9db759
commit
2b16208753
|
@ -59,11 +59,12 @@ slist_delete(slist_head *head, const slist_node *node)
|
|||
void
|
||||
dlist_member_check(const dlist_head *head, const dlist_node *node)
|
||||
{
|
||||
dlist_iter iter;
|
||||
const dlist_node *cur;
|
||||
|
||||
dlist_foreach(iter, head)
|
||||
/* iteration open-coded to due to the use of const */
|
||||
for (cur = head->head.next; cur != &head->head; cur = cur->next)
|
||||
{
|
||||
if (iter.cur == node)
|
||||
if (cur == node)
|
||||
return;
|
||||
}
|
||||
elog(ERROR, "double linked list member check failure");
|
||||
|
|
Loading…
Reference in New Issue