From 5015e1e1b58f81a036e4ad16291ef4b3bb7a596c Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 12 Sep 2022 08:31:56 +0200 Subject: Assorted examples of expanded type-safer palloc/pg_malloc API This adds some uses of the new palloc/pg_malloc variants here and there as a demonstration and test. This is kept separate from the actual API patch, since the latter might be backpatched at some point. Reviewed-by: Tom Lane Discussion: https://www.postgresql.org/message-id/flat/bb755632-2a43-d523-36f8-a1e7a389a907@enterprisedb.com --- src/backend/access/gin/ginfast.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'src/backend/access/gin/ginfast.c') diff --git a/src/backend/access/gin/ginfast.c b/src/backend/access/gin/ginfast.c index 6c677447a95..ab4bb67d4b4 100644 --- a/src/backend/access/gin/ginfast.c +++ b/src/backend/access/gin/ginfast.c @@ -505,7 +505,7 @@ ginHeapTupleFastCollect(GinState *ginstate, * resizing (since palloc likes powers of 2). */ collector->lentuples = pg_nextpower2_32(Max(16, nentries)); - collector->tuples = (IndexTuple *) palloc(sizeof(IndexTuple) * collector->lentuples); + collector->tuples = palloc_array(IndexTuple, collector->lentuples); } else if (collector->lentuples < collector->ntuples + nentries) { @@ -515,8 +515,8 @@ ginHeapTupleFastCollect(GinState *ginstate, * MaxAllocSize/sizeof(IndexTuple), causing an error in repalloc. */ collector->lentuples = pg_nextpower2_32(collector->ntuples + nentries); - collector->tuples = (IndexTuple *) repalloc(collector->tuples, - sizeof(IndexTuple) * collector->lentuples); + collector->tuples = repalloc_array(collector->tuples, + IndexTuple, collector->lentuples); } /* @@ -665,9 +665,8 @@ shiftList(Relation index, Buffer metabuffer, BlockNumber newHead, static void initKeyArray(KeyArray *keys, int32 maxvalues) { - keys->keys = (Datum *) palloc(sizeof(Datum) * maxvalues); - keys->categories = (GinNullCategory *) - palloc(sizeof(GinNullCategory) * maxvalues); + keys->keys = palloc_array(Datum, maxvalues); + keys->categories = palloc_array(GinNullCategory, maxvalues); keys->nvalues = 0; keys->maxvalues = maxvalues; } @@ -679,10 +678,8 @@ addDatum(KeyArray *keys, Datum datum, GinNullCategory category) if (keys->nvalues >= keys->maxvalues) { keys->maxvalues *= 2; - keys->keys = (Datum *) - repalloc(keys->keys, sizeof(Datum) * keys->maxvalues); - keys->categories = (GinNullCategory *) - repalloc(keys->categories, sizeof(GinNullCategory) * keys->maxvalues); + keys->keys = repalloc_array(keys->keys, Datum, keys->maxvalues); + keys->categories = repalloc_array(keys->categories, GinNullCategory, keys->maxvalues); } keys->keys[keys->nvalues] = datum; -- cgit v1.2.3