Re: Expand palloc/pg_malloc API

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-10-11T15:48:33Z
Lists: pgsql-hackers
On 14.09.22 06:53, Tom Lane wrote:
> I wrote:
>> It kind of feels that the argument order should be pointer, oldsize, size.
>> It feels even more strongly that people will get the ordering wrong,
>> whichever we choose.  Is there a way to make that more bulletproof?
> 
> Actually ... an even-more-terrifyingly-plausible misuse is that the
> supplied oldsize is different from the actual previous allocation.
> We should try to check that.  In MEMORY_CONTEXT_CHECKING builds
> it should be possible to assert that oldsize == requested_size.
> We don't have that data if !MEMORY_CONTEXT_CHECKING, but we could
> at least assert that oldsize <= allocated chunk size.

I'm not very familiar with MEMORY_CONTEXT_CHECKING.  Where would one get 
these values?




Commits

  1. Add repalloc0 and repalloc0_array

  2. Expand palloc/pg_malloc API for more type safety

  3. Assorted examples of expanded type-safer palloc/pg_malloc API