diff options
67 files changed, 157 insertions, 161 deletions
diff --git a/contrib/amcheck/verify_gin.c b/contrib/amcheck/verify_gin.c index efc56227568..253da4b1f0b 100644 --- a/contrib/amcheck/verify_gin.c +++ b/contrib/amcheck/verify_gin.c @@ -117,7 +117,7 @@ ginReadTupleWithoutState(IndexTuple itup, int *nitems) } else { - ipd = (ItemPointer) palloc(sizeof(ItemPointerData) * nipd); + ipd = palloc_array(ItemPointerData, nipd); memcpy(ipd, ptr, sizeof(ItemPointerData) * nipd); } *nitems = nipd; @@ -152,7 +152,7 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting leafdepth = -1; /* Start the scan at the root page */ - stack = (GinPostingTreeScanItem *) palloc0(sizeof(GinPostingTreeScanItem)); + stack = palloc0_object(GinPostingTreeScanItem); stack->depth = 0; ItemPointerSetInvalid(&stack->parentkey); stack->parentblk = InvalidBlockNumber; @@ -354,7 +354,7 @@ gin_check_posting_tree_parent_keys_consistency(Relation rel, BlockNumber posting stack->blkno, i))); /* This is an internal page, recurse into the child. */ - ptr = (GinPostingTreeScanItem *) palloc(sizeof(GinPostingTreeScanItem)); + ptr = palloc_object(GinPostingTreeScanItem); ptr->depth = stack->depth + 1; /* @@ -412,7 +412,7 @@ gin_check_parent_keys_consistency(Relation rel, leafdepth = -1; /* Start the scan at the root page */ - stack = (GinScanItem *) palloc0(sizeof(GinScanItem)); + stack = palloc0_object(GinScanItem); stack->depth = 0; stack->parenttup = NULL; stack->parentblk = InvalidBlockNumber; @@ -473,7 +473,7 @@ gin_check_parent_keys_consistency(Relation rel, elog(DEBUG3, "split detected for blk: %u, parent blk: %u", stack->blkno, stack->parentblk); - ptr = (GinScanItem *) palloc(sizeof(GinScanItem)); + ptr = palloc_object(GinScanItem); ptr->depth = stack->depth; ptr->parenttup = CopyIndexTuple(stack->parenttup); ptr->parentblk = stack->parentblk; @@ -601,7 +601,7 @@ gin_check_parent_keys_consistency(Relation rel, { GinScanItem *ptr; - ptr = (GinScanItem *) palloc(sizeof(GinScanItem)); + ptr = palloc_object(GinScanItem); ptr->depth = stack->depth + 1; /* last tuple in layer has no high key */ if (i == maxoff && rightlink == InvalidBlockNumber) diff --git a/contrib/amcheck/verify_heapam.c b/contrib/amcheck/verify_heapam.c index 4963e9245cb..a090e18c697 100644 --- a/contrib/amcheck/verify_heapam.c +++ b/contrib/amcheck/verify_heapam.c @@ -1838,7 +1838,7 @@ check_tuple_attribute(HeapCheckContext *ctx) { ToastedAttribute *ta; - ta = (ToastedAttribute *) palloc0(sizeof(ToastedAttribute)); + ta = palloc0_object(ToastedAttribute); VARATT_EXTERNAL_GET_POINTER(ta->toast_pointer, attr); ta->blkno = ctx->blkno; diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index fce8bd9f9f9..f91392a3a49 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -399,7 +399,7 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, /* * Initialize state for entire verification operation */ - state = palloc0(sizeof(BtreeCheckState)); + state = palloc0_object(BtreeCheckState); state->rel = rel; state->heaprel = heaprel; state->heapkeyspace = heapkeyspace; diff --git a/contrib/basebackup_to_shell/basebackup_to_shell.c b/contrib/basebackup_to_shell/basebackup_to_shell.c index 8720f5a4372..345d3ed895d 100644 --- a/contrib/basebackup_to_shell/basebackup_to_shell.c +++ b/contrib/basebackup_to_shell/basebackup_to_shell.c @@ -136,7 +136,7 @@ shell_get_sink(bbsink *next_sink, void *detail_arg) * We remember the current value of basebackup_to_shell.shell_command to * be certain that it can't change under us during the backup. */ - sink = palloc0(sizeof(bbsink_shell)); + sink = palloc0_object(bbsink_shell); *((const bbsink_ops **) &sink->base.bbs_ops) = &bbsink_shell_ops; sink->base.bbs_next = next_sink; sink->target_detail = detail_arg; diff --git a/contrib/bloom/blinsert.c b/contrib/bloom/blinsert.c index 7866438122f..c11e06c34ee 100644 --- a/contrib/bloom/blinsert.c +++ b/contrib/bloom/blinsert.c @@ -151,7 +151,7 @@ blbuild(Relation heap, Relation index, IndexInfo *indexInfo) MemoryContextDelete(buildstate.tmpCtx); - result = (IndexBuildResult *) palloc(sizeof(IndexBuildResult)); + result = palloc_object(IndexBuildResult); result->heap_tuples = reltuples; result->index_tuples = buildstate.indtuples; diff --git a/contrib/bloom/blscan.c b/contrib/bloom/blscan.c index d072f47fe28..0d71edbe91c 100644 --- a/contrib/bloom/blscan.c +++ b/contrib/bloom/blscan.c @@ -29,7 +29,7 @@ blbeginscan(Relation r, int nkeys, int norderbys) scan = RelationGetIndexScan(r, nkeys, norderbys); - so = (BloomScanOpaque) palloc(sizeof(BloomScanOpaqueData)); + so = (BloomScanOpaque) palloc_object(BloomScanOpaqueData); initBloomState(&so->state, scan->indexRelation); so->sign = NULL; @@ -86,7 +86,7 @@ blgetbitmap(IndexScanDesc scan, TIDBitmap *tbm) /* New search: have to calculate search signature */ ScanKey skey = scan->keyData; - so->sign = palloc0(sizeof(BloomSignatureWord) * so->state.opts.bloomLength); + so->sign = palloc0_array(BloomSignatureWord, so->state.opts.bloomLength); for (i = 0; i < scan->numberOfKeys; i++) { diff --git a/contrib/bloom/blutils.c b/contrib/bloom/blutils.c index bbeefc3a75b..7a468b4a173 100644 --- a/contrib/bloom/blutils.c +++ b/contrib/bloom/blutils.c @@ -86,7 +86,7 @@ makeDefaultBloomOptions(void) BloomOptions *opts; int i; - opts = (BloomOptions *) palloc0(sizeof(BloomOptions)); + opts = palloc0_object(BloomOptions); /* Convert DEFAULT_BLOOM_LENGTH from # of bits to # of words */ opts->bloomLength = (DEFAULT_BLOOM_LENGTH + SIGNWORDBITS - 1) / SIGNWORDBITS; for (i = 0; i < INDEX_MAX_KEYS; i++) diff --git a/contrib/bloom/blvacuum.c b/contrib/bloom/blvacuum.c index 1485a6a703f..e68a9008f56 100644 --- a/contrib/bloom/blvacuum.c +++ b/contrib/bloom/blvacuum.c @@ -42,7 +42,7 @@ blbulkdelete(IndexVacuumInfo *info, IndexBulkDeleteResult *stats, GenericXLogState *gxlogState; if (stats == NULL) - stats = (IndexBulkDeleteResult *) palloc0(sizeof(IndexBulkDeleteResult)); + stats = palloc0_object(IndexBulkDeleteResult); initBloomState(&state, index); @@ -171,7 +171,7 @@ blvacuumcleanup(IndexVacuumInfo *info, IndexBulkDeleteResult *stats) return stats; if (stats == NULL) - stats = (IndexBulkDeleteResult *) palloc0(sizeof(IndexBulkDeleteResult)); + stats = palloc0_object(IndexBulkDeleteResult); /* * Iterate over the pages: insert deleted pages into FSM and collect diff --git a/contrib/btree_gin/btree_gin.c b/contrib/btree_gin/btree_gin.c index 966b76e591b..afb8b3820af 100644 --- a/contrib/btree_gin/btree_gin.c +++ b/contrib/btree_gin/btree_gin.c @@ -52,7 +52,7 @@ gin_btree_extract_value(FunctionCallInfo fcinfo, bool is_varlena) { Datum datum = PG_GETARG_DATUM(0); int32 *nentries = (int32 *) PG_GETARG_POINTER(1); - Datum *entries = (Datum *) palloc(sizeof(Datum)); + Datum *entries = palloc_object(Datum); /* Ensure that values stored in the index are not toasted */ if (is_varlena) @@ -75,9 +75,9 @@ gin_btree_extract_query(FunctionCallInfo fcinfo, StrategyNumber strategy = PG_GETARG_UINT16(2); bool **partialmatch = (bool **) PG_GETARG_POINTER(3); Pointer **extra_data = (Pointer **) PG_GETARG_POINTER(4); - Datum *entries = (Datum *) palloc(sizeof(Datum)); - QueryInfo *data = (QueryInfo *) palloc(sizeof(QueryInfo)); - bool *ptr_partialmatch = (bool *) palloc(sizeof(bool)); + Datum *entries = palloc_object(Datum); + QueryInfo *data = palloc_object(QueryInfo); + bool *ptr_partialmatch = palloc_object(bool); int btree_strat, rhs_code; @@ -140,7 +140,7 @@ gin_btree_extract_query(FunctionCallInfo fcinfo, data->orig_datum = datum; data->entry_datum = entries[0]; data->typecmp = cmp_fns[rhs_code]; - *extra_data = (Pointer *) palloc(sizeof(Pointer)); + *extra_data = palloc_object(Pointer); **extra_data = (Pointer) data; PG_RETURN_POINTER(entries); @@ -579,7 +579,7 @@ GIN_SUPPORT(time, leftmostvalue_time, time_rhs_is_varlena, NULL, time_cmp_fns) static Datum leftmostvalue_timetz(void) { - TimeTzADT *v = palloc(sizeof(TimeTzADT)); + TimeTzADT *v = palloc_object(TimeTzADT); v->time = 0; v->zone = -24 * 3600; /* XXX is that true? */ @@ -639,7 +639,7 @@ GIN_SUPPORT(date, leftmostvalue_date, date_rhs_is_varlena, date_cvt_fns, date_cm static Datum leftmostvalue_interval(void) { - Interval *v = palloc(sizeof(Interval)); + Interval *v = palloc_object(Interval); INTERVAL_NOBEGIN(v); @@ -657,7 +657,7 @@ GIN_SUPPORT(interval, leftmostvalue_interval, interval_rhs_is_varlena, NULL, int static Datum leftmostvalue_macaddr(void) { - macaddr *v = palloc0(sizeof(macaddr)); + macaddr *v = palloc0_object(macaddr); return MacaddrPGetDatum(v); } @@ -673,7 +673,7 @@ GIN_SUPPORT(macaddr, leftmostvalue_macaddr, macaddr_rhs_is_varlena, NULL, macadd static Datum leftmostvalue_macaddr8(void) { - macaddr8 *v = palloc0(sizeof(macaddr8)); + macaddr8 *v = palloc0_object(macaddr8); return Macaddr8PGetDatum(v); } @@ -910,7 +910,7 @@ leftmostvalue_uuid(void) * palloc0 will create the UUID with all zeroes: * "00000000-0000-0000-0000-000000000000" */ - pg_uuid_t *retval = (pg_uuid_t *) palloc0(sizeof(pg_uuid_t)); + pg_uuid_t *retval = palloc0_object(pg_uuid_t); return UUIDPGetDatum(retval); } diff --git a/contrib/btree_gist/btree_inet.c b/contrib/btree_gist/btree_inet.c index 52bf3e2446e..e726375f61d 100644 --- a/contrib/btree_gist/btree_inet.c +++ b/contrib/btree_gist/btree_inet.c @@ -97,10 +97,10 @@ gbt_inet_compress(PG_FUNCTION_ARGS) if (entry->leafkey) { - inetKEY *r = (inetKEY *) palloc(sizeof(inetKEY)); + inetKEY *r = palloc_object(inetKEY); bool failure = false; - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); r->lower = convert_network_to_scalar(entry->key, INETOID, &failure); Assert(!failure); r->upper = r->lower; diff --git a/contrib/btree_gist/btree_interval.c b/contrib/btree_gist/btree_interval.c index 19eefc60cde..1fc27f60384 100644 --- a/contrib/btree_gist/btree_interval.c +++ b/contrib/btree_gist/btree_interval.c @@ -150,7 +150,7 @@ gbt_intv_compress(PG_FUNCTION_ARGS) { char *r = (char *) palloc(2 * INTERVALSIZE); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); if (entry->leafkey) { @@ -190,10 +190,10 @@ gbt_intv_decompress(PG_FUNCTION_ARGS) if (INTERVALSIZE != sizeof(Interval)) { - intvKEY *r = palloc(sizeof(intvKEY)); + intvKEY *r = palloc_object(intvKEY); char *key = DatumGetPointer(entry->key); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); memcpy(&r->lower, key, INTERVALSIZE); memcpy(&r->upper, key + INTERVALSIZE, INTERVALSIZE); diff --git a/contrib/btree_gist/btree_time.c b/contrib/btree_gist/btree_time.c index 9483846c473..e744f1be017 100644 --- a/contrib/btree_gist/btree_time.c +++ b/contrib/btree_gist/btree_time.c @@ -162,11 +162,11 @@ gbt_timetz_compress(PG_FUNCTION_ARGS) if (entry->leafkey) { - timeKEY *r = (timeKEY *) palloc(sizeof(timeKEY)); + timeKEY *r = palloc_object(timeKEY); TimeTzADT *tz = DatumGetTimeTzADTP(entry->key); TimeADT tmp; - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); /* We are using the time + zone only to compress */ tmp = tz->time + (tz->zone * INT64CONST(1000000)); diff --git a/contrib/btree_gist/btree_ts.c b/contrib/btree_gist/btree_ts.c index b7bbae2f4d6..3b163a729cb 100644 --- a/contrib/btree_gist/btree_ts.c +++ b/contrib/btree_gist/btree_ts.c @@ -146,7 +146,7 @@ ts_dist(PG_FUNCTION_ARGS) if (TIMESTAMP_NOT_FINITE(a) || TIMESTAMP_NOT_FINITE(b)) { - Interval *p = palloc(sizeof(Interval)); + Interval *p = palloc_object(Interval); p->day = INT_MAX; p->month = INT_MAX; @@ -170,7 +170,7 @@ tstz_dist(PG_FUNCTION_ARGS) if (TIMESTAMP_NOT_FINITE(a) || TIMESTAMP_NOT_FINITE(b)) { - Interval *p = palloc(sizeof(Interval)); + Interval *p = palloc_object(Interval); p->day = INT_MAX; p->month = INT_MAX; @@ -212,13 +212,13 @@ gbt_tstz_compress(PG_FUNCTION_ARGS) if (entry->leafkey) { - tsKEY *r = (tsKEY *) palloc(sizeof(tsKEY)); + tsKEY *r = palloc_object(tsKEY); TimestampTz ts = DatumGetTimestampTz(entry->key); Timestamp gmt; gmt = tstz_to_ts_gmt(ts); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); r->lower = r->upper = gmt; gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, diff --git a/contrib/btree_gist/btree_utils_num.c b/contrib/btree_gist/btree_utils_num.c index 9ba97f96fbf..51c8836f27a 100644 --- a/contrib/btree_gist/btree_utils_num.c +++ b/contrib/btree_gist/btree_utils_num.c @@ -89,7 +89,7 @@ gbt_num_compress(GISTENTRY *entry, const gbtree_ninfo *tinfo) memcpy(&r[0], leaf, tinfo->size); memcpy(&r[tinfo->size], leaf, tinfo->size); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, false); } @@ -156,7 +156,7 @@ gbt_num_fetch(GISTENTRY *entry, const gbtree_ninfo *tinfo) datum = entry->key; } - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, datum, entry->rel, entry->page, entry->offset, false); return retval; diff --git a/contrib/btree_gist/btree_utils_var.c b/contrib/btree_gist/btree_utils_var.c index fb466e5aa32..7fbea0cfb7b 100644 --- a/contrib/btree_gist/btree_utils_var.c +++ b/contrib/btree_gist/btree_utils_var.c @@ -40,7 +40,7 @@ gbt_var_decompress(PG_FUNCTION_ARGS) if (key != (GBT_VARKEY *) DatumGetPointer(entry->key)) { - GISTENTRY *retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + GISTENTRY *retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, @@ -289,7 +289,7 @@ gbt_var_compress(GISTENTRY *entry, const gbtree_vinfo *tinfo) r = gbt_var_key_from_datum(leaf); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, true); @@ -309,7 +309,7 @@ gbt_var_fetch(PG_FUNCTION_ARGS) GBT_VARKEY_R r = gbt_var_key_readable(key); GISTENTRY *retval; - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r.lower), entry->rel, entry->page, entry->offset, true); diff --git a/contrib/btree_gist/btree_uuid.c b/contrib/btree_gist/btree_uuid.c index 07f304f39f1..1091af222d1 100644 --- a/contrib/btree_gist/btree_uuid.c +++ b/contrib/btree_gist/btree_uuid.c @@ -108,7 +108,7 @@ gbt_uuid_compress(PG_FUNCTION_ARGS) char *r = (char *) palloc(2 * UUID_LEN); pg_uuid_t *key = DatumGetUUIDP(entry->key); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); memcpy(r, key, UUID_LEN); memcpy(r + UUID_LEN, key, UUID_LEN); diff --git a/contrib/cube/cube.c b/contrib/cube/cube.c index aa47e141f81..3600457cbc0 100644 --- a/contrib/cube/cube.c +++ b/contrib/cube/cube.c @@ -471,7 +471,7 @@ g_cube_decompress(PG_FUNCTION_ARGS) if (key != DatumGetNDBOXP(entry->key)) { - GISTENTRY *retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + GISTENTRY *retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, diff --git a/contrib/dict_int/dict_int.c b/contrib/dict_int/dict_int.c index bdad52d2028..5d9523a1a63 100644 --- a/contrib/dict_int/dict_int.c +++ b/contrib/dict_int/dict_int.c @@ -38,7 +38,7 @@ dintdict_init(PG_FUNCTION_ARGS) DictInt *d; ListCell *l; - d = (DictInt *) palloc0(sizeof(DictInt)); + d = palloc0_object(DictInt); d->maxlen = 6; d->rejectlong = false; d->absval = false; @@ -83,7 +83,7 @@ dintdict_lexize(PG_FUNCTION_ARGS) char *in = (char *) PG_GETARG_POINTER(1); int len = PG_GETARG_INT32(2); char *txt; - TSLexeme *res = palloc0(sizeof(TSLexeme) * 2); + TSLexeme *res = palloc0_array(TSLexeme, 2); res[1].lexeme = NULL; diff --git a/contrib/dict_xsyn/dict_xsyn.c b/contrib/dict_xsyn/dict_xsyn.c index 1ec5285d6d1..bbb2fd850fd 100644 --- a/contrib/dict_xsyn/dict_xsyn.c +++ b/contrib/dict_xsyn/dict_xsyn.c @@ -109,9 +109,9 @@ read_dictionary(DictSyn *d, const char *filename) { d->len = (d->len > 0) ? 2 * d->len : 16; if (d->syn) - d->syn = (Syn *) repalloc(d->syn, sizeof(Syn) * d->len); + d->syn = repalloc_array(d->syn, Syn, d->len); else - d->syn = (Syn *) palloc(sizeof(Syn) * d->len); + d->syn = palloc_array(Syn, d->len); } /* Save first word only if we will match it */ @@ -150,7 +150,7 @@ dxsyn_init(PG_FUNCTION_ARGS) ListCell *l; char *filename = NULL; - d = (DictSyn *) palloc0(sizeof(DictSyn)); + d = palloc0_object(DictSyn); d->len = 0; d->syn = NULL; d->matchorig = true; @@ -235,7 +235,7 @@ dxsyn_lexize(PG_FUNCTION_ARGS) char *end; int nsyns = 0; - res = palloc(sizeof(TSLexeme)); + res = palloc_object(TSLexeme); pos = value; while ((syn = find_word(pos, &end)) != NULL) diff --git a/contrib/file_fdw/file_fdw.c b/contrib/file_fdw/file_fdw.c index 70564a68b13..e9cda3c47d1 100644 --- a/contrib/file_fdw/file_fdw.c +++ b/contrib/file_fdw/file_fdw.c @@ -531,7 +531,7 @@ fileGetForeignRelSize(PlannerInfo *root, * we might as well get everything and not need to re-fetch it later in * planning. */ - fdw_private = (FileFdwPlanState *) palloc(sizeof(FileFdwPlanState)); + fdw_private = palloc_object(FileFdwPlanState); fileGetOptions(foreigntableid, &fdw_private->filename, &fdw_private->is_program, @@ -712,7 +712,7 @@ fileBeginForeignScan(ForeignScanState *node, int eflags) * Save state in node->fdw_state. We must save enough information to call * BeginCopyFrom() again. */ - festate = (FileFdwExecutionState *) palloc(sizeof(FileFdwExecutionState)); + festate = palloc_object(FileFdwExecutionState); festate->filename = filename; festate->is_program = is_program; festate->options = options; diff --git a/contrib/hstore/hstore_gist.c b/contrib/hstore/hstore_gist.c index 69515dc3d3f..36825ef867b 100644 --- a/contrib/hstore/hstore_gist.c +++ b/contrib/hstore/hstore_gist.c @@ -175,7 +175,7 @@ ghstore_compress(PG_FUNCTION_ARGS) } } - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, @@ -195,7 +195,7 @@ ghstore_compress(PG_FUNCTION_ARGS) res = ghstore_alloc(true, siglen, NULL); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, @@ -429,7 +429,7 @@ ghstore_picksplit(PG_FUNCTION_ARGS) maxoff = OffsetNumberNext(maxoff); /* sort before ... */ - costvector = (SPLITCOST *) palloc(sizeof(SPLITCOST) * maxoff); + costvector = palloc_array(SPLITCOST, maxoff); for (j = FirstOffsetNumber; j <= maxoff; j = OffsetNumberNext(j)) { costvector[j - 1].pos = j; diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c index 9c53877c4a5..6b01f27c5a4 100644 --- a/contrib/hstore/hstore_io.c +++ b/contrib/hstore/hstore_io.c @@ -221,7 +221,7 @@ parse_hstore(HSParser *state) bool escaped = false; state->plen = 16; - state->pairs = (Pairs *) palloc(sizeof(Pairs) * state->plen); + state->pairs = palloc_array(Pairs, state->plen); state->pcur = 0; state->ptr = state->begin; state->word = NULL; diff --git a/contrib/intarray/_int_bool.c b/contrib/intarray/_int_bool.c index 2b2c3f4029e..f45df86d60c 100644 --- a/contrib/intarray/_int_bool.c +++ b/contrib/intarray/_int_bool.c @@ -135,7 +135,7 @@ gettoken(WORKSTATE *state, int32 *val) static void pushquery(WORKSTATE *state, int32 type, int32 val) { - NODE *tmp = (NODE *) palloc(sizeof(NODE)); + NODE *tmp = palloc_object(NODE); tmp->type = type; tmp->val = val; @@ -346,7 +346,7 @@ gin_bool_consistent(QUERYTYPE *query, bool *check) * extraction code in ginint4_queryextract. */ gcv.first = items; - gcv.mapped_check = (bool *) palloc(sizeof(bool) * query->size); + gcv.mapped_check = palloc_array(bool, query->size); for (i = 0; i < query->size; i++) { if (items[i].type == VAL) @@ -613,7 +613,7 @@ infix(INFIX *in, bool first) nrm.curpol = in->curpol; nrm.buflen = 16; - nrm.cur = nrm.buf = (char *) palloc(sizeof(char) * nrm.buflen); + nrm.cur = nrm.buf = palloc_array(char, nrm.buflen); /* get right operand */ infix(&nrm, false); @@ -651,7 +651,7 @@ bqarr_out(PG_FUNCTION_ARGS) nrm.curpol = GETQUERY(query) + query->size - 1; nrm.buflen = 32; - nrm.cur = nrm.buf = (char *) palloc(sizeof(char) * nrm.buflen); + nrm.cur = nrm.buf = palloc_array(char, nrm.buflen); *(nrm.cur) = '\0'; infix(&nrm, true); diff --git a/contrib/intarray/_int_gin.c b/contrib/intarray/_int_gin.c index b7958d8eca5..c60616c3f77 100644 --- a/contrib/intarray/_int_gin.c +++ b/contrib/intarray/_int_gin.c @@ -42,7 +42,7 @@ ginint4_queryextract(PG_FUNCTION_ARGS) /* * Extract all the VAL items as things we want GIN to check for. */ - res = (Datum *) palloc(sizeof(Datum) * query->size); + res = palloc_array(Datum, query->size); *nentries = 0; for (i = 0; i < query->size; i++) @@ -65,7 +65,7 @@ ginint4_queryextract(PG_FUNCTION_ARGS) int32 *arr; int32 i; - res = (Datum *) palloc(sizeof(Datum) * (*nentries)); + res = palloc_array(Datum, *nentries); arr = ARRPTR(query); for (i = 0; i < *nentries; i++) diff --git a/contrib/intarray/_int_gist.c b/contrib/intarray/_int_gist.c index a09b7fa812c..90cf11c01a5 100644 --- a/contrib/intarray/_int_gist.c +++ b/contrib/intarray/_int_gist.c @@ -186,7 +186,7 @@ g_int_compress(PG_FUNCTION_ARGS) errmsg("input array is too big (%d maximum allowed, %d current), use gist__intbig_ops opclass instead", 2 * num_ranges - 1, ARRNELEMS(r)))); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, false); @@ -276,7 +276,7 @@ g_int_compress(PG_FUNCTION_ARGS) errmsg("data is too sparse, recreate index using gist__intbig_ops opclass instead"))); r = resize_intArrayType(r, len); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, false); PG_RETURN_POINTER(retval); @@ -306,7 +306,7 @@ g_int_decompress(PG_FUNCTION_ARGS) { if (in != (ArrayType *) DatumGetPointer(entry->key)) { - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(in), entry->rel, entry->page, entry->offset, false); PG_RETURN_POINTER(retval); @@ -321,7 +321,7 @@ g_int_decompress(PG_FUNCTION_ARGS) { /* not compressed value */ if (in != (ArrayType *) DatumGetPointer(entry->key)) { - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(in), entry->rel, entry->page, entry->offset, false); @@ -350,7 +350,7 @@ g_int_decompress(PG_FUNCTION_ARGS) if (in != (ArrayType *) DatumGetPointer(entry->key)) pfree(in); - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(r), entry->rel, entry->page, entry->offset, false); @@ -535,7 +535,7 @@ g_int_picksplit(PG_FUNCTION_ARGS) /* * sort entries */ - costvector = (SPLITCOST *) palloc(sizeof(SPLITCOST) * maxoff); + costvector = palloc_array(SPLITCOST, maxoff); for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) { costvector[i - 1].pos = i; diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c index 9699fbf3b4f..0afa8a73b68 100644 --- a/contrib/intarray/_intbig_gist.c +++ b/contrib/intarray/_intbig_gist.c @@ -174,7 +174,7 @@ g_intbig_compress(PG_FUNCTION_ARGS) ptr++; } - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, false); @@ -195,7 +195,7 @@ g_intbig_compress(PG_FUNCTION_ARGS) } res = _intbig_alloc(true, siglen, sign); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, false); @@ -385,7 +385,7 @@ g_intbig_picksplit(PG_FUNCTION_ARGS) maxoff = OffsetNumberNext(maxoff); /* sort before ... */ - costvector = (SPLITCOST *) palloc(sizeof(SPLITCOST) * maxoff); + costvector = palloc_array(SPLITCOST, maxoff); for (j = FirstOffsetNumber; j <= maxoff; j = OffsetNumberNext(j)) { costvector[j - 1].pos = j; diff --git a/contrib/jsonb_plperl/jsonb_plperl.c b/contrib/jsonb_plperl/jsonb_plperl.c index c02e2d41af1..a708d9fd82e 100644 --- a/contrib/jsonb_plperl/jsonb_plperl.c +++ b/contrib/jsonb_plperl/jsonb_plperl.c @@ -266,7 +266,7 @@ SV_to_JsonbValue(SV *in, JsonbParseState **jsonb_state, bool is_elem) /* Push result into 'jsonb_state' unless it is a raw scalar. */ return *jsonb_state ? pushJsonbValue(jsonb_state, is_elem ? WJB_ELEM : WJB_VALUE, &out) - : memcpy(palloc(sizeof(JsonbValue)), &out, sizeof(JsonbValue)); + : memcpy(palloc_object(JsonbValue), &out, sizeof(JsonbValue)); } diff --git a/contrib/jsonb_plpython/jsonb_plpython.c b/contrib/jsonb_plpython/jsonb_plpython.c index 9383615abbf..2892e88c58b 100644 --- a/contrib/jsonb_plpython/jsonb_plpython.c +++ b/contrib/jsonb_plpython/jsonb_plpython.c @@ -419,7 +419,7 @@ PLyObject_ToJsonbValue(PyObject *obj, JsonbParseState **jsonb_state, bool is_ele return PLyMapping_ToJsonbValue(obj, jsonb_state); } - out = palloc(sizeof(JsonbValue)); + out = palloc_object(JsonbValue); if (obj == Py_None) out->type = jbvNull; diff --git a/contrib/ltree/_ltree_gist.c b/contrib/ltree/_ltree_gist.c index 30d516e60bc..ceb92a6304d 100644 --- a/contrib/ltree/_ltree_gist.c +++ b/contrib/ltree/_ltree_gist.c @@ -79,7 +79,7 @@ _ltree_compress(PG_FUNCTION_ARGS) item = NEXTVAL(item); } - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, entry->offset, false); @@ -97,7 +97,7 @@ _ltree_compress(PG_FUNCTION_ARGS) } key = ltree_gist_alloc(true, sign, siglen, NULL, NULL); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, entry->offset, false); @@ -310,7 +310,7 @@ _ltree_picksplit(PG_FUNCTION_ARGS) maxoff = OffsetNumberNext(maxoff); /* sort before ... */ - costvector = (SPLITCOST *) palloc(sizeof(SPLITCOST) * maxoff); + costvector = palloc_array(SPLITCOST, maxoff); for (j = FirstOffsetNumber; j <= maxoff; j = OffsetNumberNext(j)) { costvector[j - 1].pos = j; diff --git a/contrib/ltree/_ltree_op.c b/contrib/ltree/_ltree_op.c index b4a8097328d..4d54ad34bb6 100644 --- a/contrib/ltree/_ltree_op.c +++ b/contrib/ltree/_ltree_op.c @@ -307,7 +307,7 @@ _lca(PG_FUNCTION_ARGS) (errcode(ERRCODE_NULL_VALUE_NOT_ALLOWED), errmsg("array must not contain nulls"))); - a = (ltree **) palloc(sizeof(ltree *) * num); + a = palloc_array(ltree *, num); while (num > 0) { num--; diff --git a/contrib/ltree/ltree_gist.c b/contrib/ltree/ltree_gist.c index 932f69bff2d..bb7f4634722 100644 --- a/contrib/ltree/ltree_gist.c +++ b/contrib/ltree/ltree_gist.c @@ -101,7 +101,7 @@ ltree_compress(PG_FUNCTION_ARGS) ltree *val = DatumGetLtreeP(entry->key); ltree_gist *key = ltree_gist_alloc(false, NULL, 0, val, 0); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, entry->offset, false); @@ -117,7 +117,7 @@ ltree_decompress(PG_FUNCTION_ARGS) if (PointerGetDatum(key) != entry->key) { - GISTENTRY *retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + GISTENTRY *retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, @@ -318,7 +318,7 @@ ltree_picksplit(PG_FUNCTION_ARGS) v->spl_right = (OffsetNumber *) palloc(nbytes); v->spl_nleft = 0; v->spl_nright = 0; - array = (RIX *) palloc(sizeof(RIX) * (maxoff + 1)); + array = palloc_array(RIX, maxoff + 1); /* copy the data into RIXes, and sort the RIXes */ for (j = FirstOffsetNumber; j <= maxoff; j = OffsetNumberNext(j)) diff --git a/contrib/ltree/ltree_io.c b/contrib/ltree/ltree_io.c index b54a15d6c68..59c4462df80 100644 --- a/contrib/ltree/ltree_io.c +++ b/contrib/ltree/ltree_io.c @@ -65,7 +65,7 @@ parse_ltree(const char *buf, struct Node *escontext) (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED), errmsg("number of ltree labels (%d) exceeds the maximum allowed (%d)", num + 1, LTREE_MAX_LEVELS))); - list = lptr = (nodeitem *) palloc(sizeof(nodeitem) * (num + 1)); + list = lptr = palloc_array(nodeitem, num + 1); ptr = buf; while (*ptr) { @@ -318,14 +318,14 @@ parse_lquery(const char *buf, struct Node *escontext) case LQPRS_WAITLEVEL: if (ISLABEL(ptr)) { - GETVAR(curqlevel) = lptr = (nodeitem *) palloc0(sizeof(nodeitem) * (numOR + 1)); + GETVAR(curqlevel) = lptr = palloc0_array(nodeitem, numOR + 1); lptr->start = ptr; state = LQPRS_WAITDELIM; curqlevel->numvar = 1; } else if (t_iseq(ptr, '!')) { - GETVAR(curqlevel) = lptr = (nodeitem *) palloc0(sizeof(nodeitem) * (numOR + 1)); + GETVAR(curqlevel) = lptr = palloc0_array(nodeitem, numOR + 1); lptr->start = ptr + 1; lptr->wlen = -1; /* compensate for counting ! below */ state = LQPRS_WAITDELIM; diff --git a/contrib/ltree/ltree_op.c b/contrib/ltree/ltree_op.c index e3a84db37ff..c1fc77fc804 100644 --- a/contrib/ltree/ltree_op.c +++ b/contrib/ltree/ltree_op.c @@ -566,7 +566,7 @@ lca(PG_FUNCTION_ARGS) ltree **a, *res; - a = (ltree **) palloc(sizeof(ltree *) * fcinfo->nargs); + a = palloc_array(ltree *, fcinfo->nargs); for (i = 0; i < fcinfo->nargs; i++) a[i] = PG_GETARG_LTREE_P(i); res = lca_inner(a, (int) fcinfo->nargs); diff --git a/contrib/ltree/ltxtquery_io.c b/contrib/ltree/ltxtquery_io.c index ec331607793..3a2aa223c3e 100644 --- a/contrib/ltree/ltxtquery_io.c +++ b/contrib/ltree/ltxtquery_io.c @@ -154,7 +154,7 @@ gettoken_query(QPRS_STATE *state, int32 *val, int32 *lenval, char **strval, uint static bool pushquery(QPRS_STATE *state, int32 type, int32 val, int32 distance, int32 lenval, uint16 flag) { - NODE *tmp = (NODE *) palloc(sizeof(NODE)); + NODE *tmp = palloc_object(NODE); tmp->type = type; tmp->val = val; @@ -543,7 +543,7 @@ infix(INFIX *in, bool first) nrm.curpol = in->curpol; nrm.op = in->op; nrm.buflen = 16; - nrm.cur = nrm.buf = (char *) palloc(sizeof(char) * nrm.buflen); + nrm.cur = nrm.buf = palloc_array(char, nrm.buflen); /* get right operand */ infix(&nrm, false); @@ -582,7 +582,7 @@ ltxtq_out(PG_FUNCTION_ARGS) nrm.curpol = GETQUERY(query); nrm.buflen = 32; - nrm.cur = nrm.buf = (char *) palloc(sizeof(char) * nrm.buflen); + nrm.cur = nrm.buf = palloc_array(char, nrm.buflen); *(nrm.cur) = '\0'; nrm.op = GETOPERAND(query); infix(&nrm, true); @@ -615,7 +615,7 @@ ltxtq_send(PG_FUNCTION_ARGS) nrm.curpol = GETQUERY(query); nrm.buflen = 32; - nrm.cur = nrm.buf = (char *) palloc(sizeof(char) * nrm.buflen); + nrm.cur = nrm.buf = palloc_array(char, nrm.buflen); *(nrm.cur) = '\0'; nrm.op = GETOPERAND(query); infix(&nrm, true); diff --git a/contrib/pageinspect/brinfuncs.c b/contrib/pageinspect/brinfuncs.c index 990c965aa92..b7dcc8ac8a9 100644 --- a/contrib/pageinspect/brinfuncs.c +++ b/contrib/pageinspect/brinfuncs.c @@ -186,7 +186,7 @@ brin_page_items(PG_FUNCTION_ARGS) * Initialize output functions for all indexed datatypes; simplifies * calling them later. */ - columns = palloc(sizeof(brin_column_state *) * RelationGetDescr(indexRel)->natts); + columns = palloc_array(brin_column_state *, RelationGetDescr(indexRel)->natts); for (attno = 1; attno <= bdesc->bd_tupdesc->natts; attno++) { Oid output; diff --git a/contrib/pageinspect/btreefuncs.c b/contrib/pageinspect/btreefuncs.c index 2e67c9adf5a..7ff6dc08934 100644 --- a/contrib/pageinspect/btreefuncs.c +++ b/contrib/pageinspect/btreefuncs.c @@ -379,7 +379,7 @@ bt_multi_page_stats(PG_FUNCTION_ARGS) /* Save arguments for reuse */ mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); - uargs = palloc(sizeof(ua_page_stats)); + uargs = palloc_object(ua_page_stats); uargs->relid = RelationGetRelid(rel); uargs->blkno = blkno; @@ -660,7 +660,7 @@ bt_page_items_internal(PG_FUNCTION_ARGS, enum pageinspect_version ext_version) */ mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); - uargs = palloc(sizeof(ua_page_items)); + uargs = palloc_object(ua_page_items); uargs->page = palloc(BLCKSZ); memcpy(uargs->page, BufferGetPage(buffer), BLCKSZ); @@ -752,7 +752,7 @@ bt_page_items_bytea(PG_FUNCTION_ARGS) fctx = SRF_FIRSTCALL_INIT(); mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); - uargs = palloc(sizeof(ua_page_items)); + uargs = palloc_object(ua_page_items); uargs->page = get_page_from_raw(raw_page); diff --git a/contrib/pageinspect/ginfuncs.c b/contrib/pageinspect/ginfuncs.c index 09a90957081..f6168d8e895 100644 --- a/contrib/pageinspect/ginfuncs.c +++ b/contrib/pageinspect/ginfuncs.c @@ -222,7 +222,7 @@ gin_leafpage_items(PG_FUNCTION_ARGS) opaq->flags, (GIN_DATA | GIN_LEAF | GIN_COMPRESSED)))); - inter_call_data = palloc(sizeof(gin_leafpage_items_state)); + inter_call_data = palloc_object(gin_leafpage_items_state); /* Build a tuple descriptor for our result type */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) diff --git a/contrib/pageinspect/hashfuncs.c b/contrib/pageinspect/hashfuncs.c index ca7f1f6e741..0e898889fa5 100644 --- a/contrib/pageinspect/hashfuncs.c +++ b/contrib/pageinspect/hashfuncs.c @@ -325,7 +325,7 @@ hash_page_items(PG_FUNCTION_ARGS) page = verify_hash_page(raw_page, LH_BUCKET_PAGE | LH_OVERFLOW_PAGE); - uargs = palloc(sizeof(struct user_args)); + uargs = palloc_object(struct user_args); uargs->page = page; diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index c13f07655c4..ca7bffdbea5 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -154,7 +154,7 @@ heap_page_items(PG_FUNCTION_ARGS) fctx = SRF_FIRSTCALL_INIT(); mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx); - inter_call_data = palloc(sizeof(heap_page_items_state)); + inter_call_data = palloc_object(heap_page_items_state); /* Build a tuple descriptor for our result type */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) @@ -553,7 +553,7 @@ heap_tuple_infomask_flags(PG_FUNCTION_ARGS) } /* build set of raw flags */ - flags = (Datum *) palloc0(sizeof(Datum) * bitcnt); + flags = palloc0_array(Datum, bitcnt); /* decode t_infomask */ if ((t_infomask & HEAP_HASNULL) != 0) diff --git a/contrib/pg_overexplain/pg_overexplain.c b/contrib/pg_overexplain/pg_overexplain.c index bd70b6d9d5e..fcdc17012da 100644 --- a/contrib/pg_overexplain/pg_overexplain.c +++ b/contrib/pg_overexplain/pg_overexplain.c @@ -95,7 +95,7 @@ overexplain_ensure_options(ExplainState *es) if (options == NULL) { - options = palloc0(sizeof(overexplain_options)); + options = palloc0_object(overexplain_options); SetExplainExtensionState(es, es_extension_id, options); } diff --git a/contrib/pg_trgm/trgm_gin.c b/contrib/pg_trgm/trgm_gin.c index 2e49f31c9d6..66ff6adde99 100644 --- a/contrib/pg_trgm/trgm_gin.c +++ b/contrib/pg_trgm/trgm_gin.c @@ -51,7 +51,7 @@ gin_extract_value_trgm(PG_FUNCTION_ARGS) int32 i; *nentries = trglen; - entries = (Datum *) palloc(sizeof(Datum) * trglen); + entries = palloc_array(Datum, trglen); ptr = GETARR(trg); for (i = 0; i < trglen; i++) @@ -123,7 +123,7 @@ gin_extract_query_trgm(PG_FUNCTION_ARGS) * Pointers, but we just put the same value in each element. */ trglen = ARRNELEM(trg); - *extra_data = (Pointer *) palloc(sizeof(Pointer) * trglen); + *extra_data = palloc_array(Pointer, trglen); for (i = 0; i < trglen; i++) (*extra_data)[i] = (Pointer) graph; } @@ -146,7 +146,7 @@ gin_extract_query_trgm(PG_FUNCTION_ARGS) if (trglen > 0) { - entries = (Datum *) palloc(sizeof(Datum) * trglen); + entries = palloc_array(Datum, trglen); ptr = GETARR(trg); for (i = 0; i < trglen; i++) { @@ -338,7 +338,7 @@ gin_trgm_triconsistent(PG_FUNCTION_ARGS) * function, promoting all GIN_MAYBE keys to GIN_TRUE will * give a conservative result. */ - boolcheck = (bool *) palloc(sizeof(bool) * nkeys); + boolcheck = palloc_array(bool, nkeys); for (i = 0; i < nkeys; i++) boolcheck[i] = (check[i] != GIN_FALSE); if (!trigramsMatchGraph(extra_data[0], boolcheck)) diff --git a/contrib/pg_trgm/trgm_gist.c b/contrib/pg_trgm/trgm_gist.c index 5ba895217b0..5c7deb103a6 100644 --- a/contrib/pg_trgm/trgm_gist.c +++ b/contrib/pg_trgm/trgm_gist.c @@ -124,7 +124,7 @@ gtrgm_compress(PG_FUNCTION_ARGS) text *val = DatumGetTextPP(entry->key); res = generate_trgm(VARDATA_ANY(val), VARSIZE_ANY_EXHDR(val)); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, false); @@ -143,7 +143,7 @@ gtrgm_compress(PG_FUNCTION_ARGS) } res = gtrgm_alloc(true, siglen, sign); - retval = (GISTENTRY *) palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(res), entry->rel, entry->page, entry->offset, false); @@ -163,7 +163,7 @@ gtrgm_decompress(PG_FUNCTION_ARGS) if (key != (text *) DatumGetPointer(entry->key)) { /* need to pass back the decompressed item */ - retval = palloc(sizeof(GISTENTRY)); + retval = palloc_object(GISTENTRY); gistentryinit(*retval, PointerGetDatum(key), entry->rel, entry->page, entry->offset, entry->leafkey); PG_RETURN_POINTER(retval); @@ -820,7 +820,7 @@ gtrgm_picksplit(PG_FUNCTION_ARGS) SPLITCOST *costvector; /* cache the sign data for each existing item */ - cache = (CACHESIGN *) palloc(sizeof(CACHESIGN) * (maxoff + 1)); + cache = palloc_array(CACHESIGN, maxoff + 1); cache_sign = palloc(siglen * (maxoff + 1)); for (k = FirstOffsetNumber; k <= maxoff; k = OffsetNumberNext(k)) @@ -864,7 +864,7 @@ gtrgm_picksplit(PG_FUNCTION_ARGS) union_r = GETSIGN(datum_r); /* sort before ... */ - costvector = (SPLITCOST *) palloc(sizeof(SPLITCOST) * maxoff); + costvector = palloc_array(SPLITCOST, maxoff); for (j = FirstOffsetNumber; j <= maxoff; j = OffsetNumberNext(j)) { costvector[j - 1].pos = j; diff --git a/contrib/pg_trgm/trgm_regexp.c b/contrib/pg_trgm/trgm_regexp.c index 149f9eb259c..1a76794c422 100644 --- a/contrib/pg_trgm/trgm_regexp.c +++ b/contrib/pg_trgm/trgm_regexp.c @@ -791,12 +791,11 @@ getColorInfo(regex_t *regex, TrgmNFA *trgmNFA) colorInfo->expandable = true; colorInfo->containsNonWord = false; - colorInfo->wordChars = (trgm_mb_char *) - palloc(sizeof(trgm_mb_char) * charsCount); + colorInfo->wordChars = palloc_array(trgm_mb_char, charsCount); colorInfo->wordCharsCount = 0; /* Extract all the chars in this color */ - chars = (pg_wchar *) palloc(sizeof(pg_wchar) * charsCount); + chars = palloc_array(pg_wchar, charsCount); pg_reg_getcharacters(regex, i, chars, charsCount); /* @@ -1063,7 +1062,7 @@ addKey(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key) * original NFA. */ arcsCount = pg_reg_getnumoutarcs(trgmNFA->regex, key->nstate); - arcs = (regex_arc_t *) palloc(sizeof(regex_arc_t) * arcsCount); + arcs = palloc_array(regex_arc_t, arcsCount); pg_reg_getoutarcs(trgmNFA->regex, key->nstate, arcs, arcsCount); for (i = 0; i < arcsCount; i++) @@ -1177,7 +1176,7 @@ addKey(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key) static void addKeyToQueue(TrgmNFA *trgmNFA, TrgmStateKey *key) { - TrgmStateKey *keyCopy = (TrgmStateKey *) palloc(sizeof(TrgmStateKey)); + TrgmStateKey *keyCopy = palloc_object(TrgmStateKey); memcpy(keyCopy, key, sizeof(TrgmStateKey)); trgmNFA->keysQueue = lappend(trgmNFA->keysQueue, keyCopy); @@ -1215,7 +1214,7 @@ addArcs(TrgmNFA *trgmNFA, TrgmState *state) TrgmStateKey *key = (TrgmStateKey *) lfirst(cell); arcsCount = pg_reg_getnumoutarcs(trgmNFA->regex, key->nstate); - arcs = (regex_arc_t *) palloc(sizeof(regex_arc_t) * arcsCount); + arcs = palloc_array(regex_arc_t, arcsCount); pg_reg_getoutarcs(trgmNFA->regex, key->nstate, arcs, arcsCount); for (i = 0; i < arcsCount; i++) @@ -1311,7 +1310,7 @@ addArc(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key, } /* Checks were successful, add new arc */ - arc = (TrgmArc *) palloc(sizeof(TrgmArc)); + arc = palloc_object(TrgmArc); arc->target = getState(trgmNFA, destKey); arc->ctrgm.colors[0] = key->prefix.colors[0]; arc->ctrgm.colors[1] = key->prefix.colors[1]; @@ -1467,7 +1466,7 @@ selectColorTrigrams(TrgmNFA *trgmNFA) int cnumber; /* Collect color trigrams from all arcs */ - colorTrgms = (ColorTrgmInfo *) palloc0(sizeof(ColorTrgmInfo) * arcsCount); + colorTrgms = palloc0_array(ColorTrgmInfo, arcsCount); trgmNFA->colorTrgms = colorTrgms; i = 0; @@ -1479,7 +1478,7 @@ selectColorTrigrams(TrgmNFA *trgmNFA) foreach(cell, state->arcs) { TrgmArc *arc = (TrgmArc *) lfirst(cell); - TrgmArcInfo *arcInfo = (TrgmArcInfo *) palloc(sizeof(TrgmArcInfo)); + TrgmArcInfo *arcInfo = palloc_object(TrgmArcInfo); ColorTrgmInfo *trgmInfo = &colorTrgms[i]; arcInfo->source = state; @@ -1964,8 +1963,7 @@ packGraph(TrgmNFA *trgmNFA, MemoryContext rcontext) } /* Collect array of all arcs */ - arcs = (TrgmPackArcInfo *) - palloc(sizeof(TrgmPackArcInfo) * trgmNFA->arcsCount); + arcs = palloc_array(TrgmPackArcInfo, trgmNFA->arcsCount); arcIndex = 0; hash_seq_init(&scan_status, trgmNFA->states); while ((state = (TrgmState *) hash_seq_search(&scan_status)) != NULL) @@ -2147,7 +2145,7 @@ printSourceNFA(regex_t *regex, TrgmColorInfo *colors, int ncolors) appendStringInfoString(&buf, ";\n"); arcsCount = pg_reg_getnumoutarcs(regex, state); - arcs = (regex_arc_t *) palloc(sizeof(regex_arc_t) * arcsCount); + arcs = palloc_array(regex_arc_t, arcsCount); pg_reg_getoutarcs(regex, state, arcs, arcsCount); for (i = 0; i < arcsCount; i++) diff --git a/contrib/pg_visibility/pg_visibility.c b/contrib/pg_visibility/pg_visibility.c index d79ef35006b..7046c1b5f8e 100644 --- a/contrib/pg_visibility/pg_visibility.c +++ b/contrib/pg_visibility/pg_visibility.c @@ -741,7 +741,7 @@ collect_corrupt_items(Oid relid, bool all_visible, bool all_frozen) * number of entries allocated. We'll repurpose these fields before * returning. */ - items = palloc0(sizeof(corrupt_items)); + items = palloc0_object(corrupt_items); items->next = 0; items->count = 64; items->tids = palloc(items->count * sizeof(ItemPointerData)); diff --git a/contrib/pg_walinspect/pg_walinspect.c b/contrib/pg_walinspect/pg_walinspect.c index 3c5e4a856a7..6945bac1306 100644 --- a/contrib/pg_walinspect/pg_walinspect.c +++ b/contrib/pg_walinspect/pg_walinspect.c @@ -109,8 +109,7 @@ InitXLogReaderState(XLogRecPtr lsn) errmsg("could not read WAL at LSN %X/%08X", LSN_FORMAT_ARGS(lsn)))); - private_data = (ReadLocalXLogPageNoWaitPrivate *) - palloc0(sizeof(ReadLocalXLogPageNoWaitPrivate)); + private_data = palloc0_object(ReadLocalXLogPageNoWaitPrivate); xlogreader = XLogReaderAllocate(wal_segment_size, NULL, XL_ROUTINE(.page_read = &read_local_xlog_page_no_wait, @@ -310,7 +309,7 @@ GetWALBlockInfo(FunctionCallInfo fcinfo, XLogReaderState *record, /* Construct and save block_fpi_info */ bitcnt = pg_popcount((const char *) &blk->bimg_info, sizeof(uint8)); - flags = (Datum *) palloc0(sizeof(Datum) * bitcnt); + flags = palloc0_array(Datum, bitcnt); if ((blk->bimg_info & BKPIMAGE_HAS_HOLE) != 0) flags[cnt++] = CStringGetTextDatum("HAS_HOLE"); if (blk->apply_image) diff --git a/contrib/pgcrypto/mbuf.c b/contrib/pgcrypto/mbuf.c index 8dfc1b39d48..6a23ad99706 100644 --- a/contrib/pgcrypto/mbuf.c +++ b/contrib/pgcrypto/mbuf.c @@ -115,7 +115,7 @@ mbuf_create(int len) if (!len) len = 8192; - mbuf = palloc(sizeof *mbuf); + mbuf = palloc_object(MBuf); mbuf->data = palloc(len); mbuf->buf_end = mbuf->data + len; mbuf->data_end = mbuf->data; @@ -132,7 +132,7 @@ mbuf_create_from_data(uint8 *data, int len) { MBuf *mbuf; - mbuf = palloc(sizeof *mbuf); + mbuf = palloc_object(MBuf); mbuf->data = data; mbuf->buf_end = mbuf->data + len; mbuf->data_end = mbuf->data + len; @@ -206,7 +206,7 @@ pullf_create(PullFilter **pf_p, const PullFilterOps *op, void *init_arg, PullFil res = 0; } - pf = palloc0(sizeof(*pf)); + pf = palloc0_object(PullFilter); pf->buflen = res; pf->op = op; pf->priv = priv; @@ -372,7 +372,7 @@ pushf_create(PushFilter **mp_p, const PushFilterOps *op, void *init_arg, PushFil res = 0; } - mp = palloc0(sizeof(*mp)); + mp = palloc0_object(PushFilter); mp->block_size = res; mp->op = op; mp->priv = priv; diff --git a/contrib/pgcrypto/openssl.c b/contrib/pgcrypto/openssl.c index f179e80c842..d3c12e7fda3 100644 --- a/contrib/pgcrypto/openssl.c +++ b/contrib/pgcrypto/openssl.c @@ -197,7 +197,7 @@ px_find_digest(const char *name, PX_MD **res) ResourceOwnerRememberOSSLDigest(digest->owner, digest); /* The PX_MD object is allocated in the current memory context. */ - h = palloc(sizeof(*h)); + h = palloc_object(PX_MD); h->result_size = digest_result_size; h->block_size = digest_block_size; h->reset = digest_reset; @@ -813,7 +813,7 @@ px_find_cipher(const char *name, PX_Cipher **res) od->evp_ciph = i->ciph->cipher_func(); /* The PX_Cipher is allocated in current memory context */ - c = palloc(sizeof(*c)); + c = palloc_object(PX_Cipher); c->block_size = gen_ossl_block_size; c->key_size = gen_ossl_key_size; c->iv_size = gen_ossl_iv_size; diff --git a/contrib/pgcrypto/pgp-cfb.c b/contrib/pgcrypto/pgp-cfb.c index de41e825b0c..d8f1afc3aba 100644 --- a/contrib/pgcrypto/pgp-cfb.c +++ b/contrib/pgcrypto/pgp-cfb.c @@ -67,7 +67,7 @@ pgp_cfb_create(PGP_CFB **ctx_p, int algo, const uint8 *key, int key_len, return res; } - ctx = palloc0(sizeof(*ctx)); + ctx = palloc0_object(PGP_CFB); ctx->ciph = ciph; ctx->block_size = px_cipher_block_size(ciph); ctx->resync = resync; diff --git a/contrib/pgcrypto/pgp-compress.c b/contrib/pgcrypto/pgp-compress.c index 961cf21e748..caa80ecdb45 100644 --- a/contrib/pgcrypto/pgp-compress.c +++ b/contrib/pgcrypto/pgp-compress.c @@ -80,7 +80,7 @@ compress_init(PushFilter *next, void *init_arg, void **priv_p) /* * init */ - st = palloc0(sizeof(*st)); + st = palloc0_object(struct ZipStat); st->buf_len = ZIP_OUT_BUF; st->stream.zalloc = z_alloc; st->stream.zfree = z_free; @@ -211,7 +211,7 @@ decompress_init(void **priv_p, void *arg, PullFilter *src) && ctx->compress_algo != PGP_COMPR_ZIP) return PXE_PGP_UNSUPPORTED_COMPR; - dec = palloc0(sizeof(*dec)); + dec = palloc0_object(struct DecomprData); dec->buf_len = ZIP_OUT_BUF; *priv_p = dec; diff --git a/contrib/pgcrypto/pgp-decrypt.c b/contrib/pgcrypto/pgp-decrypt.c index e1ea5b3e58d..52ca7840c6d 100644 --- a/contrib/pgcrypto/pgp-decrypt.c +++ b/contrib/pgcrypto/pgp-decrypt.c @@ -224,7 +224,7 @@ pgp_create_pkt_reader(PullFilter **pf_p, PullFilter *src, int len, int pkttype, PGP_Context *ctx) { int res; - struct PktData *pkt = palloc(sizeof(*pkt)); + struct PktData *pkt = palloc_object(struct PktData); pkt->type = pkttype; pkt->len = len; @@ -448,7 +448,7 @@ mdcbuf_init(void **priv_p, void *arg, PullFilter *src) PGP_Context *ctx = arg; struct MDCBufData *st; - st = palloc0(sizeof(*st)); + st = palloc0_object(struct MDCBufData); st->buflen = sizeof(st->buf); st->ctx = ctx; *priv_p = st; diff --git a/contrib/pgcrypto/pgp-encrypt.c b/contrib/pgcrypto/pgp-encrypt.c index f7467c9b1cb..2c059804706 100644 --- a/contrib/pgcrypto/pgp-encrypt.c +++ b/contrib/pgcrypto/pgp-encrypt.c @@ -178,7 +178,7 @@ encrypt_init(PushFilter *next, void *init_arg, void **priv_p) if (res < 0) return res; - st = palloc0(sizeof(*st)); + st = palloc0_object(struct EncStat); st->ciph = ciph; *priv_p = st; @@ -240,7 +240,7 @@ pkt_stream_init(PushFilter *next, void *init_arg, void **priv_p) { struct PktStreamStat *st; - st = palloc(sizeof(*st)); + st = palloc_object(struct PktStreamStat); st->final_done = 0; st->pkt_block = 1 << STREAM_BLOCK_SHIFT; *priv_p = st; diff --git a/contrib/pgcrypto/pgp-pgsql.c b/contrib/pgcrypto/pgp-pgsql.c index 7c9f4c7b39b..3e47b9364ab 100644 --- a/contrib/pgcrypto/pgp-pgsql.c +++ b/contrib/pgcrypto/pgp-pgsql.c @@ -782,8 +782,8 @@ parse_key_value_arrays(ArrayType *key_array, ArrayType *val_array, (errcode(ERRCODE_ARRAY_SUBSCRIPT_ERROR), errmsg("mismatched array dimensions"))); - keys = (char **) palloc(sizeof(char *) * key_count); - values = (char **) palloc(sizeof(char *) * val_count); + keys = palloc_array(char *, key_count); + values = palloc_array(char *, val_count); for (i = 0; i < key_count; i++) { @@ -937,7 +937,7 @@ pgp_armor_headers(PG_FUNCTION_ARGS) attinmeta = TupleDescGetAttInMetadata(tupdesc); funcctx->attinmeta = attinmeta; - state = (pgp_armor_headers_state *) palloc(sizeof(pgp_armor_headers_state)); + state = palloc_object(pgp_armor_headers_state); res = pgp_extract_armor_headers((uint8 *) VARDATA_ANY(data), VARSIZE_ANY_EXHDR(data), diff --git a/contrib/pgcrypto/pgp-pubkey.c b/contrib/pgcrypto/pgp-pubkey.c index 9a6561caf9d..6f118865917 100644 --- a/contrib/pgcrypto/pgp-pubkey.c +++ b/contrib/pgcrypto/pgp-pubkey.c @@ -39,7 +39,7 @@ pgp_key_alloc(PGP_PubKey **pk_p) { PGP_PubKey *pk; - pk = palloc0(sizeof(*pk)); + pk = palloc0_object(PGP_PubKey); *pk_p = pk; return 0; } diff --git a/contrib/pgcrypto/px-hmac.c b/contrib/pgcrypto/px-hmac.c index 99174d26551..68e5cff6d6a 100644 --- a/contrib/pgcrypto/px-hmac.c +++ b/contrib/pgcrypto/px-hmac.c @@ -157,7 +157,7 @@ px_find_hmac(const char *name, PX_HMAC **res) return PXE_HASH_UNUSABLE_FOR_HMAC; } - h = palloc(sizeof(*h)); + h = palloc_object(PX_HMAC); h->p.ipad = palloc(bs); h->p.opad = palloc(bs); h->md = md; diff --git a/contrib/pgcrypto/px.c b/contrib/pgcrypto/px.c index d35ccca7774..4d668d4e496 100644 --- a/contrib/pgcrypto/px.c +++ b/contrib/pgcrypto/px.c @@ -291,7 +291,7 @@ px_find_combo(const char *name, PX_Combo **res) PX_Combo *cx; - cx = palloc0(sizeof(*cx)); + cx = palloc0_object(PX_Combo); buf = pstrdup(name); err = parse_cipher_name(buf, &s_cipher, &s_pad); diff --git a/contrib/seg/seg.c b/contrib/seg/seg.c index b5de2a5e1be..2d3a048c73e 100644 --- a/contrib/seg/seg.c +++ b/contrib/seg/seg.c @@ -107,7 +107,7 @@ Datum seg_in(PG_FUNCTION_ARGS) { char *str = PG_GETARG_CSTRING(0); - SEG *result = palloc(sizeof(SEG)); + SEG *result = palloc_object(SEG); yyscan_t scanner; seg_scanner_init(str, &scanner); @@ -370,7 +370,7 @@ gseg_picksplit(PG_FUNCTION_ARGS) /* * Emit segments to the left output page, and compute its bounding box. */ - seg_l = (SEG *) palloc(sizeof(SEG)); + seg_l = palloc_object(SEG); memcpy(seg_l, sort_items[0].data, sizeof(SEG)); *left++ = sort_items[0].index; v->spl_nleft++; @@ -388,7 +388,7 @@ gseg_picksplit(PG_FUNCTION_ARGS) /* * Likewise for the right page. */ - seg_r = (SEG *) palloc(sizeof(SEG)); + seg_r = palloc_object(SEG); memcpy(seg_r, sort_items[firstright].data, sizeof(SEG)); *right++ = sort_items[firstright].index; v->spl_nright++; @@ -632,7 +632,7 @@ seg_union(PG_FUNCTION_ARGS) SEG *b = PG_GETARG_SEG_P(1); SEG *n; - n = (SEG *) palloc(sizeof(*n)); + n = palloc_object(SEG); /* take max of upper endpoints */ if (a->upper > b->upper) @@ -672,7 +672,7 @@ seg_inter(PG_FUNCTION_ARGS) SEG *b = PG_GETARG_SEG_P(1); SEG *n; - n = (SEG *) palloc(sizeof(*n)); + n = palloc_object(SEG); /* take min of upper endpoints */ if (a->upper < b->upper) diff --git a/contrib/sepgsql/label.c b/contrib/sepgsql/label.c index a37d89a3f1c..978067e0391 100644 --- a/contrib/sepgsql/label.c +++ b/contrib/sepgsql/label.c @@ -145,7 +145,7 @@ sepgsql_set_client_label(const char *new_label) */ oldcxt = MemoryContextSwitchTo(CurTransactionContext); - plabel = palloc0(sizeof(pending_label)); + plabel = palloc0_object(pending_label); plabel->subid = GetCurrentSubTransactionId(); if (new_label) plabel->label = pstrdup(new_label); diff --git a/contrib/sepgsql/uavc.c b/contrib/sepgsql/uavc.c index d9ccbc38bc5..5e57971bb4d 100644 --- a/contrib/sepgsql/uavc.c +++ b/contrib/sepgsql/uavc.c @@ -257,7 +257,7 @@ sepgsql_avc_compute(const char *scontext, const char *tcontext, uint16 tclass) */ oldctx = MemoryContextSwitchTo(avc_mem_cxt); - cache = palloc0(sizeof(avc_cache)); + cache = palloc0_object(avc_cache); cache->hash = hash; cache->scontext = pstrdup(scontext); diff --git a/contrib/spi/refint.c b/contrib/spi/refint.c index 89898cad7b0..fbbd558ca1e 100644 --- a/contrib/spi/refint.c +++ b/contrib/spi/refint.c @@ -651,7 +651,7 @@ find_plan(char *ident, EPlan **eplan, int *nplans) } else { - newp = *eplan = (EPlan *) palloc(sizeof(EPlan)); + newp = *eplan = palloc_object(EPlan); (*nplans) = i = 0; } diff --git a/contrib/sslinfo/sslinfo.c b/contrib/sslinfo/sslinfo.c index da702011193..2b9eb90b093 100644 --- a/contrib/sslinfo/sslinfo.c +++ b/contrib/sslinfo/sslinfo.c @@ -374,7 +374,7 @@ ssl_extension_info(PG_FUNCTION_ARGS) oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx); /* Create a user function context for cross-call persistence */ - fctx = (SSLExtensionInfoContext *) palloc(sizeof(SSLExtensionInfoContext)); + fctx = palloc_object(SSLExtensionInfoContext); /* Construct tuple descriptor */ if (get_call_result_type(fcinfo, NULL, &tupdesc) != TYPEFUNC_COMPOSITE) diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c index 74afdc0977f..c40fd36dc96 100644 --- a/contrib/tablefunc/tablefunc.c +++ b/contrib/tablefunc/tablefunc.c @@ -207,7 +207,7 @@ normal_rand(PG_FUNCTION_ARGS) funcctx->max_calls = num_tuples; /* allocate memory for user context */ - fctx = (normal_rand_fctx *) palloc(sizeof(normal_rand_fctx)); + fctx = palloc_object(normal_rand_fctx); /* * Use fctx to keep track of upper and lower bounds from call to call. @@ -766,7 +766,7 @@ load_categories_hash(char *cats_sql, MemoryContext per_query_ctx) SPIcontext = MemoryContextSwitchTo(per_query_ctx); - catdesc = (crosstab_cat_desc *) palloc(sizeof(crosstab_cat_desc)); + catdesc = palloc_object(crosstab_cat_desc); catdesc->catname = catname; catdesc->attidx = i; diff --git a/contrib/test_decoding/test_decoding.c b/contrib/test_decoding/test_decoding.c index 36e77c69e1c..47094f86f5f 100644 --- a/contrib/test_decoding/test_decoding.c +++ b/contrib/test_decoding/test_decoding.c @@ -163,7 +163,7 @@ pg_decode_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, TestDecodingData *data; bool enable_streaming = false; - data = palloc0(sizeof(TestDecodingData)); + data = palloc0_object(TestDecodingData); data->context = AllocSetContextCreate(ctx->context, "text conversion context", ALLOCSET_DEFAULT_SIZES); diff --git a/contrib/tsm_system_rows/tsm_system_rows.c b/contrib/tsm_system_rows/tsm_system_rows.c index f401efa2131..ef145fa6747 100644 --- a/contrib/tsm_system_rows/tsm_system_rows.c +++ b/contrib/tsm_system_rows/tsm_system_rows.c @@ -163,7 +163,7 @@ system_rows_samplescangetsamplesize(PlannerInfo *root, static void system_rows_initsamplescan(SampleScanState *node, int eflags) { - node->tsm_state = palloc0(sizeof(SystemRowsSamplerData)); + node->tsm_state = palloc0_object(SystemRowsSamplerData); /* Note the above leaves tsm_state->step equal to zero */ } diff --git a/contrib/tsm_system_time/tsm_system_time.c b/contrib/tsm_system_time/tsm_system_time.c index c9c71d8c3af..1041258ea1a 100644 --- a/contrib/tsm_system_time/tsm_system_time.c +++ b/contrib/tsm_system_time/tsm_system_time.c @@ -179,7 +179,7 @@ system_time_samplescangetsamplesize(PlannerInfo *root, static void system_time_initsamplescan(SampleScanState *node, int eflags) { - node->tsm_state = palloc0(sizeof(SystemTimeSamplerData)); + node->tsm_state = palloc0_object(SystemTimeSamplerData); /* Note the above leaves tsm_state->step equal to zero */ } diff --git a/contrib/unaccent/unaccent.c b/contrib/unaccent/unaccent.c index 336ba31047a..68251660887 100644 --- a/contrib/unaccent/unaccent.c +++ b/contrib/unaccent/unaccent.c @@ -60,7 +60,7 @@ placeChar(TrieChar *node, const unsigned char *str, int lenstr, TrieChar *curnode; if (!node) - node = (TrieChar *) palloc0(sizeof(TrieChar) * 256); + node = palloc0_array(TrieChar, 256); Assert(lenstr > 0); /* else str[0] doesn't exist */ @@ -239,7 +239,7 @@ initTrie(const char *filename) if (trgquoted && state > 0) { /* Ignore first and end quotes */ - trgstore = (char *) palloc(sizeof(char) * (trglen - 2)); + trgstore = palloc_array(char, trglen - 2); trgstorelen = 0; for (int i = 1; i < trglen - 1; i++) { @@ -252,7 +252,7 @@ initTrie(const char *filename) } else { - trgstore = (char *) palloc(sizeof(char) * trglen); + trgstore = palloc_array(char, trglen); trgstorelen = trglen; memcpy(trgstore, trg, trgstorelen); } @@ -421,7 +421,7 @@ unaccent_lexize(PG_FUNCTION_ARGS) /* return a result only if we made at least one substitution */ if (buf.data != NULL) { - res = (TSLexeme *) palloc0(sizeof(TSLexeme) * 2); + res = palloc0_array(TSLexeme, 2); res->lexeme = buf.data; res->flags = TSL_FILTER; } diff --git a/contrib/xml2/xpath.c b/contrib/xml2/xpath.c index 4ac291c8251..662d7d02f27 100644 --- a/contrib/xml2/xpath.c +++ b/contrib/xml2/xpath.c @@ -485,8 +485,7 @@ pgxml_xpath(text *document, xmlChar *xpath, PgXmlErrorContext *xmlerrcxt) { int32 docsize = VARSIZE_ANY_EXHDR(document); xmlXPathCompExprPtr comppath; - xpath_workspace *workspace = (xpath_workspace *) - palloc0(sizeof(xpath_workspace)); + xpath_workspace *workspace = palloc0_object(xpath_workspace); workspace->doctree = NULL; workspace->ctxt = NULL; diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c index 36578b82e4d..2be87bec0cd 100644 --- a/contrib/xml2/xslt_proc.c +++ b/contrib/xml2/xslt_proc.c @@ -69,7 +69,7 @@ xslt_process(PG_FUNCTION_ARGS) else { /* No parameters */ - params = (const char **) palloc(sizeof(char *)); + params = palloc_object(const char *); params[0] = NULL; } |
