Re: const correctness
От | Thomas Munro |
---|---|
Тема | Re: const correctness |
Дата | |
Msg-id | CADLWmXVqGBwhJnK7226AWa4eGMo4h-mOQpAUgofqojaqn4vtpQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: const correctness ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>) |
Ответы |
Re: const correctness
Re: const correctness |
Список | pgsql-hackers |
On 9 November 2011 19:35, Kevin Grittner <Kevin.Grittner@wicourts.gov> wrote: > Robert Haas <robertmhaas@gmail.com> wrote: >> So that's already duplicating list_head, foreach, and forboth. > > OK, I failed to pick up on that properly. With that stripped out, > you get the attached patch, which does nothing but add "const" to > 661 lines. It still applies cleanly, builds with no warnings, and > passes regression tests. > > It is a bit disappointing that without creating two flavors of the > list_head function and the foreach and forboth macros, there are a > number of functions which aren't intended to modify their inputs > which can't be declared with const parameters; but unless there is > some demonstrable performance benefit from those changes, I agree > that the argument for having the two flavors is thin. There is another option: if list_head is changed to take a pointer to const List and return a pointer to non-const ListCell (something I was trying to avoid before), then no XXX_const functions/macros are necessary, and all of the functions from the first patch can keep their 'const', adding const to 930 lines. I've attached a new patch, which simply adds the keyword 'const' in lots of places, no new functions etc. This version generates no warnings under -Wcast-qual (now that I've read Peter E's thread and been inspired to fix up some places that previously cast away const) for all code under backend/nodes. To achieve that I had to stray outside backend/nodes and change get_leftop and get_rightop (from clauses.h).
Вложения
В списке pgsql-hackers по дате отправления: