Re: Consistently use palloc_object() and palloc_array()

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: David Geier <geidav.pg@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, Chao Li <li.evan.chao@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-12-09T22:41:25Z
Lists: pgsql-hackers
On Wed, Dec 10, 2025 at 11:38 AM Michael Paquier <michael@paquier.xyz> wrote:
>             b_checkargnulls =
> -               palloc(sizeof(LLVMBasicBlockRef *) * op->d.func.nargs);
> +               palloc_array(LLVMBasicBlockRef *, op->d.func.nargs);
>
> This one in llvmjit_expr.c was causing a compilation failure.  I am
> not exactly sure why, but discarded for now.  I got a reproduction
> locally as well as in the CI.

I think the original code is wrong, it should have been
sizeof(LLVMBasicBlockRef)?  It'll be the same size anyway (these
LLVM*Ref types are just pointers), but that'd explain why the
transformation didn't compile.