Re: [PATCH] Const'ify the arguments of ilist.c/ilist.h functions - Mailing list pgsql-hackers
From | Andres Freund |
---|---|
Subject | Re: [PATCH] Const'ify the arguments of ilist.c/ilist.h functions |
Date | |
Msg-id | 20221122173156.6ye6xpcsrxok6ela@awork3.anarazel.de Whole thread Raw |
In response to | [PATCH] Const'ify the arguments of ilist.c/ilist.h functions (Aleksander Alekseev <aleksander@timescale.com>) |
Responses |
Re: [PATCH] Const'ify the arguments of ilist.c/ilist.h functions
|
List | pgsql-hackers |
Hi, On 2022-11-07 12:03:23 +0300, Aleksander Alekseev wrote: > During the [1] discussion it was suggested to constify the arguments > of ilist.c/ilist.h functions. Bharath (cc'ed) pointed out that it's > better to start a new thread in order to attract more hackers that may > be interested in this change, so I started one. I needed something similar in https://postgr.es/m/20221120055930.t6kl3tyivzhlrzu2%40awork3.anarazel.de > @@ -484,7 +484,7 @@ dlist_has_prev(dlist_head *head, dlist_node *node) > * Return the next node in the list (there must be one). > */ > static inline dlist_node * > -dlist_next_node(dlist_head *head, dlist_node *node) > +dlist_next_node(const dlist_head *head, const dlist_node *node) > { > Assert(dlist_has_next(head, node)); > return node->next; > @@ -494,7 +494,7 @@ dlist_next_node(dlist_head *head, dlist_node *node) > * Return previous node in the list (there must be one). > */ > static inline dlist_node * > -dlist_prev_node(dlist_head *head, dlist_node *node) > +dlist_prev_node(const dlist_head *head, const dlist_node *node) > { > Assert(dlist_has_prev(head, node)); > return node->prev; > @@ -502,7 +502,7 @@ dlist_prev_node(dlist_head *head, dlist_node *node) > > /* internal support function to get address of head element's struct */ > static inline void * > -dlist_head_element_off(dlist_head *head, size_t off) > +dlist_head_element_off(const dlist_head *head, size_t off) > { > Assert(!dlist_is_empty(head)); > return (char *) head->head.next - off; > @@ -512,14 +512,14 @@ dlist_head_element_off(dlist_head *head, size_t off) > * Return the first node in the list (there must be one). > */ > static inline dlist_node * > -dlist_head_node(dlist_head *head) > +dlist_head_node(const dlist_head *head) > { > return (dlist_node *) dlist_head_element_off(head, 0); > } > > /* internal support function to get address of tail element's struct */ > static inline void * > -dlist_tail_element_off(dlist_head *head, size_t off) > +dlist_tail_element_off(const dlist_head *head, size_t off) > { > Assert(!dlist_is_empty(head)); > return (char *) head->head.prev - off; > @@ -529,7 +529,7 @@ dlist_tail_element_off(dlist_head *head, size_t off) > * Return the last node in the list (there must be one). > */ > static inline dlist_node * > -dlist_tail_node(dlist_head *head) > +dlist_tail_node(const dlist_head *head) > { > return (dlist_node *) dlist_tail_element_off(head, 0); > } I don't think it is correct for any of these to add const. The only reason it works is because of casting etc. > @@ -801,7 +801,7 @@ dclist_has_prev(dclist_head *head, dlist_node *node) > * Return the next node in the list (there must be one). > */ > static inline dlist_node * > -dclist_next_node(dclist_head *head, dlist_node *node) > +dclist_next_node(const dclist_head *head, const dlist_node *node) > { > Assert(head->count > 0); > > @@ -813,7 +813,7 @@ dclist_next_node(dclist_head *head, dlist_node *node) > * Return the prev node in the list (there must be one). > */ > static inline dlist_node * > -dclist_prev_node(dclist_head *head, dlist_node *node) > +dclist_prev_node(const dclist_head *head, const dlist_node *node) > { > Assert(head->count > 0); > > @@ -822,7 +822,7 @@ dclist_prev_node(dclist_head *head, dlist_node *node) > > /* internal support function to get address of head element's struct */ > static inline void * > -dclist_head_element_off(dclist_head *head, size_t off) > +dclist_head_element_off(const dclist_head *head, size_t off) > { > Assert(!dclist_is_empty(head)); > > @@ -834,7 +834,7 @@ dclist_head_element_off(dclist_head *head, size_t off) > * Return the first node in the list (there must be one). > */ > static inline dlist_node * > -dclist_head_node(dclist_head *head) > +dclist_head_node(const dclist_head *head) > { > Assert(head->count > 0); > > @@ -843,7 +843,7 @@ dclist_head_node(dclist_head *head) > > /* internal support function to get address of tail element's struct */ > static inline void * > -dclist_tail_element_off(dclist_head *head, size_t off) > +dclist_tail_element_off(const dclist_head *head, size_t off) > { > Assert(!dclist_is_empty(head)); > > @@ -854,7 +854,7 @@ dclist_tail_element_off(dclist_head *head, size_t off) > * Return the last node in the list (there must be one). > */ > static inline dlist_node * > -dclist_tail_node(dclist_head *head) > +dclist_tail_node(const dclist_head *head) > { > Assert(head->count > 0); > Dito. > @@ -988,7 +988,7 @@ slist_has_next(slist_head *head, slist_node *node) > * Return the next node in the list (there must be one). > */ > static inline slist_node * > -slist_next_node(slist_head *head, slist_node *node) > +slist_next_node(const slist_head *head, const slist_node *node) > { > Assert(slist_has_next(head, node)); > return node->next; > @@ -996,7 +996,7 @@ slist_next_node(slist_head *head, slist_node *node) > > /* internal support function to get address of head element's struct */ > static inline void * > -slist_head_element_off(slist_head *head, size_t off) > +slist_head_element_off(const slist_head *head, size_t off) > { > Assert(!slist_is_empty(head)); > return (char *) head->head.next - off; > @@ -1006,7 +1006,7 @@ slist_head_element_off(slist_head *head, size_t off) > * Return the first node in the list (there must be one). > */ > static inline slist_node * > -slist_head_node(slist_head *head) > +slist_head_node(const slist_head *head) > { > return (slist_node *) slist_head_element_off(head, 0); > } Dito. Greetings, Andres Freund
pgsql-hackers by date: