In
c8ad4d8166a 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[email protected]
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");