]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Expand palloc/pg_malloc API for more type safety
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 14 Sep 2022 04:04:24 +0000 (06:04 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 14 Sep 2022 04:08:34 +0000 (06:08 +0200)
commitb7f37af7c195519a041fcc6084cff95dc5e4a76f
tree255bc999b1c9c01efa1239180f2a4d1f8bc0232b
parentc2aa5d01e3e33776f77e68a60ca5b60b58c5c674
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@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/bb755632-2a43-d523-36f8-a1e7a389a907@enterprisedb.com
src/include/common/fe_memutils.h
src/include/utils/palloc.h