1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-04 12:02:48 +03:00

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:
Andres Freund
2023-01-18 10:22:37 -08:00
parent 47bb9db759
commit 2b16208753

View File

@@ -59,11 +59,12 @@ slist_delete(slist_head *head, const slist_node *node)
void void
dlist_member_check(const dlist_head *head, const dlist_node *node) 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; return;
} }
elog(ERROR, "double linked list member check failure"); elog(ERROR, "double linked list member check failure");