Re: Consistently use palloc_object() and palloc_array() - Mailing list pgsql-hackers

From Chao Li
Subject Re: Consistently use palloc_object() and palloc_array()
Date
Msg-id ED821EDD-6A1B-45B8-9005-31BCFFCB5A48@gmail.com
Whole thread Raw
In response to Consistently use palloc_object() and palloc_array()  (David Geier <geidav.pg@gmail.com>)
List pgsql-hackers

> On Nov 27, 2025, at 06:09, David Geier <geidav.pg@gmail.com> wrote:
>
> Hi hackers,
>
> I've changed all code to use the "new" palloc_object(), palloc_array(),
> palloc0_object(), palloc0_array, repalloc_array() and repalloc0_array()
> macros. This makes the code more readable and more consistent.
>
> The patch is pretty big but potential merge conflicts should be easy to
> resolve. If preferred, I can also further split up the patch, e.g.
> directory by directory or high impact files first.
>
> The patch is passing "meson test" and I've additionally wrote a script
> that parses the patch file and verifies that every two corresponding +
> and - lines match (e.g. palloc0() replaced by palloc0_array() or
> palloc0_object(), the same for palloc() and repalloc(), additionally
> some checks to make sure the conversion to the _array() variant is
> correct).
>
> --
> David Geier<v1-0001-Consistently-use-palloc_object-and-palloc_array.patch>

This is a large patch, I just take a quick look, and found that:

```
-        *phoned_word = palloc(sizeof(char) * strlen(word) + 1);
+        *phoned_word = palloc_array(char, strlen(word) + 1);
```

And

```
-        params = (const char **) palloc(sizeof(char *));
+        params = palloc_object(const char *);
```

Applying palloc_array and palloc_object to char type doesn’t seem to improve anything.

Best reagards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Refactoring: Use soft error reporting for *_opt_overflow functions of date/timestamp
Next
From: Michael Paquier
Date:
Subject: Re: Add pg_buffercache_mark_dirty[_all] functions to the pg_buffercache