Expand palloc/pg_malloc API for more type safety
authorPeter Eisentraut <peter@eisentraut.org>
Mon, 12 Sep 2022 06:31:56 +0000 (08:31 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Mon, 12 Sep 2022 06:45:03 +0000 (08:45 +0200)
commit2016055a92f26d648aba9f66d26cc0bcd1619eff
tree529e16b46e038383cdf1e34c4aba55a3dc315172
parentb060f57791cfd84ec7c7eb84eb1d1d38b39aa0a5
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.

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