Re: Consistently use palloc_object() and palloc_array()

Поиск
Список
Период
Сортировка
От David Geier
Тема Re: Consistently use palloc_object() and palloc_array()
Дата
Msg-id 4ab4a12b-49e9-4ebf-9055-225c8055fed0@gmail.com
обсуждение исходный текст
Ответ на Re: Consistently use palloc_object() and palloc_array()  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Consistently use palloc_object() and palloc_array()
Список pgsql-hackers
On 03.12.2025 01:40, Tom Lane wrote:
> Michael Paquier <michael@paquier.xyz> writes:
>> It may be a good idea to split the patch into two parts, at least:
>> - One for the bulk of the changes, for the straight-forward changes.
>> Most of what you are suggesting are that for palloc_object and
>> palloc_array which are dropped-in replacements.  Checking that these
>> assemble the same before and after offers one extra layer of
>> confidence.
>> - Second one for the more dubious changes.
> 
> Yeah, I was thinking the same.  Some of those might perhaps be bugs
> that we want to back-patch, so they need to be looked at in a
> different way.
> 
>             regards, tom lane

Attached are the two patches, rebased on latest master.

The first one contains all changes that either result in no changes to
the disassembly, or only in changes due to the line counts; because
elog.h makes use of __LINE__.

The second patch contains the remaining changes, which is only 11 files.

contrib/fuzzystrmatch/fuzzystrmatch.c: semantic changes, e.g.
  palloc(sizeof(char) * strlen(word) + 1);
  =>
  palloc_array(char, strlen(word) + 1);

contrib/pg_buffercache/pg_buffercache_pages.c: semantic change
  palloc(sizeof(uint64) * os_page_count);
  =>
  palloc_array(int, os_page_count);

src/test/modules/test_rbtree/test_rbtree.c: different way to get pointer
  return (RBTNode *) palloc(sizeof(IntRBTreeNode));
  =>
  return &palloc_object(IntRBTreeNode)->rbtnode;

contrib/hstore/hstore_gin.c
contrib/hstore/hstore_op.c
contrib/pg_trgm/trgm_op.c
contrib/postgres_fdw/postgres_fdw.c
src/backend/executor/execPartition.c
src/backend/partitioning/partprune.c
src/backend/statistics/mvdistinct.c
src/backend/storage/buffer/bufmgr.c
  All files contain arithmetic expressions for the count argument of
palloc[0]_array(). The parentheses can change the order in which the
arguments are evaluated which changes the generated code.

--
David Geier
Вложения

В списке pgsql-hackers по дате отправления: