From b4b7ce8061d34cea2b4915c41403b2a74d5fde0e Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 12 Nov 2022 20:31:27 +0100 Subject: Add repalloc0 and repalloc0_array These zero out the space added by repalloc. This is a common pattern that is quite hairy to code by hand. Reviewed-by: Tom Lane Discussion: https://www.postgresql.org/message-id/b66dfc89-9365-cb57-4e1f-b7d31813eeec@enterprisedb.com --- src/backend/parser/parse_param.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/backend/parser/parse_param.c') diff --git a/src/backend/parser/parse_param.c b/src/backend/parser/parse_param.c index f668abfcb33..e80876aa25e 100644 --- a/src/backend/parser/parse_param.c +++ b/src/backend/parser/parse_param.c @@ -145,14 +145,10 @@ variable_paramref_hook(ParseState *pstate, ParamRef *pref) { /* Need to enlarge param array */ if (*parstate->paramTypes) - *parstate->paramTypes = (Oid *) repalloc(*parstate->paramTypes, - paramno * sizeof(Oid)); + *parstate->paramTypes = repalloc0_array(*parstate->paramTypes, Oid, + *parstate->numParams, paramno); else - *parstate->paramTypes = (Oid *) palloc(paramno * sizeof(Oid)); - /* Zero out the previously-unreferenced slots */ - MemSet(*parstate->paramTypes + *parstate->numParams, - 0, - (paramno - *parstate->numParams) * sizeof(Oid)); + *parstate->paramTypes = palloc0_array(Oid, paramno); *parstate->numParams = paramno; } -- cgit v1.2.3