pgsql: Expand palloc/pg_malloc API for more type safety

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Expand palloc/pg_malloc API for more type safety
Date: 2022-09-14 04:18:18
Message-ID: E1oYJqs-000For-8L@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Expand palloc/pg_malloc API for more type safety

This adds additional variants of palloc, pg_malloc, etc. that
encapsulate common usage patterns and provide more type safety.

Specifically, this adds palloc_object(), palloc_array(), and
repalloc_array(), which take the type name of the object to be
allocated as its first argument and cast the return as a pointer to
that type. There are also palloc0_object() and palloc0_array()
variants for initializing with zero, and pg_malloc_*() variants of all
of the above.

Inspired by the talloc library.

This is backpatched from master so that future backpatchable code can
make use of these APIs. This patch by itself does not contain any
users of these APIs.

Reviewed-by: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Discussion: https://www.postgresql.org/message-id/flat/bb755632-2a43-d523-36f8-a1e7a389a907(at)enterprisedb(dot)com

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/7fe55d5e12b66c7807d8af1f45946d7d48f5d6db

Modified Files
--------------
src/include/common/fe_memutils.h | 28 ++++++++++++++++++++++++++++
src/include/utils/palloc.h | 22 ++++++++++++++++++++++
2 files changed, 50 insertions(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2022-09-14 04:43:57 Re: pgsql: process startup: Remove bootstrap / checker modes from AuxProcTy
Previous Message John Naylor 2022-09-14 04:02:22 pgsql: Move gramparse.h to src/backend/parser