Use palloc_object() and palloc_array() in backend code The idea is to encourage more the use of these new routines across the tree, as these offer stronger type safety guarantees than palloc(). This batch of changes includes most of the trivial changes suggested by the author for src/backend/.
A total of 334 files are updated here. Among these files, 48 of them have their build change slightly; these are caused by line number changes as the new allocation formulas are simpler, shaving around 100 lines of code in total. Similar work has been done in 0c3c5c3b06a3 and 31d3847a37be. Author: David Geier <[email protected]> Discussion: https://postgr.es/m/[email protected] Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/1b105f9472bdb9a68f709778afafb494997267bd Modified Files -------------- src/backend/access/brin/brin.c | 8 +- src/backend/access/brin/brin_minmax_multi.c | 4 +- src/backend/access/brin/brin_revmap.c | 2 +- src/backend/access/brin/brin_tuple.c | 15 ++-- src/backend/access/common/attmap.c | 4 +- src/backend/access/common/heaptuple.c | 8 +- src/backend/access/common/printtup.c | 2 +- src/backend/access/common/reloptions.c | 6 +- src/backend/access/common/tidstore.c | 8 +- src/backend/access/common/toast_internals.c | 2 +- src/backend/access/common/tupconvert.c | 20 ++--- src/backend/access/common/tupdesc.c | 2 +- src/backend/access/gin/ginbtree.c | 6 +- src/backend/access/gin/ginbulk.c | 5 +- src/backend/access/gin/gindatapage.c | 14 ++-- src/backend/access/gin/ginentrypage.c | 4 +- src/backend/access/gin/ginget.c | 4 +- src/backend/access/gin/gininsert.c | 16 ++-- src/backend/access/gin/ginscan.c | 13 ++- src/backend/access/gin/ginutil.c | 10 +-- src/backend/access/gin/ginvacuum.c | 8 +- src/backend/access/gist/gist.c | 22 ++--- src/backend/access/gist/gistbuild.c | 10 +-- src/backend/access/gist/gistbuildbuffers.c | 14 ++-- src/backend/access/gist/gistproc.c | 26 +++--- src/backend/access/gist/gistscan.c | 6 +- src/backend/access/gist/gistsplit.c | 8 +- src/backend/access/gist/gistutil.c | 4 +- src/backend/access/gist/gistvacuum.c | 4 +- src/backend/access/hash/hash.c | 9 +-- src/backend/access/hash/hashsort.c | 2 +- src/backend/access/heap/heapam.c | 14 ++-- src/backend/access/heap/heapam_handler.c | 6 +- src/backend/access/heap/rewriteheap.c | 2 +- src/backend/access/heap/vacuumlazy.c | 6 +- src/backend/access/index/amvalidate.c | 2 +- src/backend/access/index/genam.c | 14 ++-- src/backend/access/nbtree/nbtdedup.c | 8 +- src/backend/access/nbtree/nbtinsert.c | 2 +- src/backend/access/nbtree/nbtpage.c | 2 +- src/backend/access/nbtree/nbtree.c | 9 +-- src/backend/access/nbtree/nbtsearch.c | 2 +- src/backend/access/nbtree/nbtsort.c | 32 ++++---- src/backend/access/nbtree/nbtsplitloc.c | 2 +- src/backend/access/nbtree/nbtxlog.c | 2 +- src/backend/access/spgist/spgdoinsert.c | 33 ++++---- src/backend/access/spgist/spginsert.c | 2 +- src/backend/access/spgist/spgkdtreeproc.c | 14 ++-- src/backend/access/spgist/spgproc.c | 4 +- src/backend/access/spgist/spgquadtreeproc.c | 22 ++--- src/backend/access/spgist/spgscan.c | 30 +++---- src/backend/access/spgist/spgtextproc.c | 19 +++-- src/backend/access/spgist/spgutils.c | 2 +- src/backend/access/spgist/spgvacuum.c | 6 +- src/backend/access/spgist/spgxlog.c | 2 +- src/backend/access/tablesample/system.c | 2 +- src/backend/access/transam/multixact.c | 3 +- src/backend/access/transam/parallel.c | 7 +- src/backend/access/transam/timeline.c | 8 +- src/backend/access/transam/twophase.c | 10 +-- src/backend/access/transam/xact.c | 2 +- src/backend/access/transam/xlog.c | 4 +- src/backend/access/transam/xlogfuncs.c | 2 +- src/backend/access/transam/xlogprefetcher.c | 2 +- src/backend/access/transam/xlogrecovery.c | 6 +- src/backend/access/transam/xlogutils.c | 2 +- src/backend/backup/basebackup.c | 6 +- src/backend/backup/basebackup_copy.c | 2 +- src/backend/backup/basebackup_gzip.c | 2 +- src/backend/backup/basebackup_incremental.c | 6 +- src/backend/backup/basebackup_lz4.c | 2 +- src/backend/backup/basebackup_progress.c | 2 +- src/backend/backup/basebackup_server.c | 2 +- src/backend/backup/basebackup_target.c | 4 +- src/backend/backup/basebackup_throttle.c | 2 +- src/backend/backup/basebackup_zstd.c | 2 +- src/backend/backup/walsummary.c | 2 +- src/backend/bootstrap/bootstrap.c | 6 +- src/backend/catalog/dependency.c | 8 +- src/backend/catalog/heap.c | 8 +- src/backend/catalog/index.c | 8 +- src/backend/catalog/namespace.c | 4 +- src/backend/catalog/objectaddress.c | 4 +- src/backend/catalog/pg_constraint.c | 2 +- src/backend/catalog/pg_depend.c | 2 +- src/backend/catalog/pg_enum.c | 6 +- src/backend/catalog/pg_publication.c | 6 +- src/backend/catalog/pg_shdepend.c | 4 +- src/backend/catalog/pg_subscription.c | 4 +- src/backend/catalog/storage.c | 10 +-- src/backend/commands/analyze.c | 6 +- src/backend/commands/cluster.c | 4 +- src/backend/commands/copy.c | 2 +- src/backend/commands/copyfrom.c | 4 +- src/backend/commands/copyto.c | 4 +- src/backend/commands/createas.c | 2 +- src/backend/commands/dbcommands.c | 2 +- src/backend/commands/event_trigger.c | 24 +++--- src/backend/commands/explain.c | 2 +- src/backend/commands/explain_dr.c | 2 +- src/backend/commands/explain_state.c | 7 +- src/backend/commands/extension.c | 4 +- src/backend/commands/functioncmds.c | 2 +- src/backend/commands/matview.c | 4 +- src/backend/commands/opclasscmds.c | 12 +-- src/backend/commands/policy.c | 6 +- src/backend/commands/publicationcmds.c | 6 +- src/backend/commands/seclabel.c | 2 +- src/backend/commands/subscriptioncmds.c | 4 +- src/backend/commands/tablecmds.c | 36 ++++----- src/backend/commands/trigger.c | 8 +- src/backend/commands/tsearchcmds.c | 8 +- src/backend/commands/typecmds.c | 4 +- src/backend/commands/user.c | 4 +- src/backend/commands/vacuumparallel.c | 6 +- src/backend/executor/execExpr.c | 94 ++++++++++------------ src/backend/executor/execGrouping.c | 2 +- src/backend/executor/execIndexing.c | 4 +- src/backend/executor/execMain.c | 21 +++-- src/backend/executor/execParallel.c | 2 +- src/backend/executor/execReplication.c | 8 +- src/backend/executor/execTuples.c | 4 +- src/backend/executor/functions.c | 4 +- src/backend/executor/nodeAgg.c | 42 +++++----- src/backend/executor/nodeAppend.c | 2 +- src/backend/executor/nodeFunctionscan.c | 2 +- src/backend/executor/nodeGatherMerge.c | 6 +- src/backend/executor/nodeHashjoin.c | 5 +- src/backend/executor/nodeIndexonlyscan.c | 3 +- src/backend/executor/nodeIndexscan.c | 8 +- src/backend/executor/nodeMemoize.c | 4 +- src/backend/executor/nodeMergeAppend.c | 6 +- src/backend/executor/nodeModifyTable.c | 13 ++- src/backend/executor/nodeProjectSet.c | 6 +- src/backend/executor/nodeSamplescan.c | 2 +- src/backend/executor/nodeTableFuncscan.c | 4 +- src/backend/executor/nodeTidrangescan.c | 2 +- src/backend/executor/nodeTidscan.c | 2 +- src/backend/executor/nodeWindowAgg.c | 12 +-- src/backend/executor/spi.c | 21 +++-- src/backend/executor/tqueue.c | 4 +- src/backend/executor/tstoreReceiver.c | 2 +- src/backend/foreign/foreign.c | 10 +-- src/backend/jit/llvm/llvmjit.c | 6 +- src/backend/jit/llvm/llvmjit_deform.c | 12 +-- src/backend/jit/llvm/llvmjit_expr.c | 8 +- src/backend/lib/bipartite_match.c | 2 +- src/backend/lib/dshash.c | 4 +- src/backend/lib/integerset.c | 2 +- src/backend/lib/pairingheap.c | 2 +- src/backend/lib/rbtree.c | 2 +- src/backend/libpq/auth-oauth.c | 8 +- src/backend/libpq/auth-scram.c | 2 +- src/backend/libpq/hba.c | 10 +-- src/backend/libpq/pqcomm.c | 2 +- src/backend/nodes/nodeFuncs.c | 2 +- src/backend/nodes/queryjumblefuncs.c | 2 +- src/backend/nodes/tidbitmap.c | 4 +- src/backend/optimizer/geqo/geqo_erx.c | 2 +- src/backend/optimizer/geqo/geqo_eval.c | 2 +- src/backend/optimizer/geqo/geqo_pmx.c | 8 +- src/backend/optimizer/geqo/geqo_pool.c | 10 +-- src/backend/optimizer/geqo/geqo_recombination.c | 2 +- src/backend/optimizer/path/clausesel.c | 2 +- src/backend/optimizer/path/costsize.c | 4 +- src/backend/optimizer/path/indxpath.c | 7 +- src/backend/optimizer/path/joinrels.c | 3 +- src/backend/optimizer/plan/analyzejoins.c | 3 +- src/backend/optimizer/plan/createplan.c | 34 ++++---- src/backend/optimizer/plan/initsplan.c | 6 +- src/backend/optimizer/plan/planagg.c | 2 +- src/backend/optimizer/plan/planner.c | 6 +- src/backend/optimizer/plan/setrefs.c | 6 +- src/backend/optimizer/prep/prepjointree.c | 7 +- src/backend/optimizer/prep/prepunion.c | 2 +- src/backend/optimizer/util/appendinfo.c | 3 +- src/backend/optimizer/util/clauses.c | 6 +- src/backend/optimizer/util/extendplan.c | 18 ++--- src/backend/optimizer/util/plancat.c | 39 +++++---- src/backend/optimizer/util/predtest.c | 4 +- src/backend/optimizer/util/relnode.c | 15 ++-- src/backend/optimizer/util/tlist.c | 12 +-- src/backend/parser/analyze.c | 5 +- src/backend/parser/gram.y | 92 ++++++++++----------- src/backend/parser/parse_clause.c | 4 +- src/backend/parser/parse_expr.c | 4 +- src/backend/parser/parse_node.c | 2 +- src/backend/parser/parse_param.c | 4 +- src/backend/parser/parse_relation.c | 10 +-- src/backend/parser/parse_type.c | 2 +- src/backend/partitioning/partbounds.c | 66 +++++++-------- src/backend/partitioning/partdesc.c | 2 +- src/backend/postmaster/autovacuum.c | 6 +- src/backend/postmaster/bgworker.c | 2 +- src/backend/postmaster/checkpointer.c | 2 +- src/backend/postmaster/launch_backend.c | 2 +- src/backend/postmaster/pgarch.c | 4 +- src/backend/postmaster/postmaster.c | 2 +- src/backend/postmaster/syslogger.c | 2 +- src/backend/postmaster/walsummarizer.c | 3 +- .../libpqwalreceiver/libpqwalreceiver.c | 4 +- .../replication/logical/applyparallelworker.c | 2 +- src/backend/replication/logical/launcher.c | 2 +- src/backend/replication/logical/logical.c | 2 +- src/backend/replication/logical/logicalfuncs.c | 2 +- src/backend/replication/logical/proto.c | 8 +- src/backend/replication/logical/relation.c | 8 +- src/backend/replication/logical/reorderbuffer.c | 17 ++-- src/backend/replication/logical/slotsync.c | 2 +- src/backend/replication/logical/snapbuild.c | 5 +- src/backend/replication/logical/syncutils.c | 2 +- src/backend/replication/logical/worker.c | 6 +- src/backend/replication/pgoutput/pgoutput.c | 4 +- src/backend/replication/syncrep.c | 9 +-- src/backend/replication/walreceiver.c | 4 +- src/backend/replication/walsender.c | 2 +- src/backend/rewrite/rewriteHandler.c | 2 +- src/backend/rewrite/rewriteManip.c | 6 +- src/backend/snowball/dict_snowball.c | 4 +- src/backend/statistics/dependencies.c | 26 +++--- src/backend/statistics/extended_stats.c | 15 ++-- src/backend/statistics/mcv.c | 24 +++--- src/backend/storage/file/buffile.c | 10 +-- src/backend/storage/ipc/procarray.c | 8 +- src/backend/storage/ipc/shm_mq.c | 2 +- src/backend/storage/ipc/shmem.c | 6 +- src/backend/storage/lmgr/lock.c | 16 ++-- src/backend/storage/lmgr/predicate.c | 8 +- src/backend/storage/smgr/bulk_write.c | 2 +- src/backend/storage/smgr/md.c | 2 +- src/backend/storage/smgr/smgr.c | 2 +- src/backend/storage/sync/sync.c | 2 +- src/backend/tcop/pquery.c | 2 +- src/backend/tsearch/dict.c | 2 +- src/backend/tsearch/dict_ispell.c | 2 +- src/backend/tsearch/dict_simple.c | 6 +- src/backend/tsearch/dict_synonym.c | 8 +- src/backend/tsearch/dict_thesaurus.c | 26 +++--- src/backend/tsearch/spell.c | 22 ++--- src/backend/tsearch/to_tsany.c | 14 ++-- src/backend/tsearch/ts_parse.c | 2 +- src/backend/tsearch/ts_selfuncs.c | 2 +- src/backend/tsearch/ts_typanalyze.c | 6 +- src/backend/tsearch/ts_utils.c | 4 +- src/backend/tsearch/wparser.c | 16 ++-- src/backend/tsearch/wparser_def.c | 12 +-- src/backend/utils/activity/pgstat_relation.c | 2 +- src/backend/utils/activity/wait_event.c | 2 +- src/backend/utils/adt/acl.c | 6 +- src/backend/utils/adt/array_selfuncs.c | 8 +- src/backend/utils/adt/array_typanalyze.c | 7 +- src/backend/utils/adt/array_userfuncs.c | 12 +-- src/backend/utils/adt/arrayfuncs.c | 14 ++-- src/backend/utils/adt/arraysubs.c | 2 +- src/backend/utils/adt/date.c | 24 +++--- src/backend/utils/adt/datetime.c | 10 +-- src/backend/utils/adt/formatting.c | 2 +- src/backend/utils/adt/geo_ops.c | 94 +++++++++++----------- src/backend/utils/adt/geo_spgist.c | 40 ++++----- src/backend/utils/adt/int.c | 2 +- src/backend/utils/adt/int8.c | 2 +- src/backend/utils/adt/json.c | 6 +- src/backend/utils/adt/jsonb_gin.c | 19 ++--- src/backend/utils/adt/jsonb_util.c | 10 +-- src/backend/utils/adt/jsonfuncs.c | 64 +++++++-------- src/backend/utils/adt/jsonpath_exec.c | 27 +++---- src/backend/utils/adt/jsonpath_gram.y | 4 +- src/backend/utils/adt/lockfuncs.c | 2 +- src/backend/utils/adt/mac.c | 14 ++-- src/backend/utils/adt/mac8.c | 18 ++--- src/backend/utils/adt/mcxtfuncs.c | 2 +- src/backend/utils/adt/misc.c | 2 +- src/backend/utils/adt/multirangetypes.c | 8 +- src/backend/utils/adt/multirangetypes_selfuncs.c | 4 +- src/backend/utils/adt/multixactfuncs.c | 2 +- src/backend/utils/adt/network.c | 24 +++--- src/backend/utils/adt/network_gist.c | 10 +-- src/backend/utils/adt/network_spgist.c | 6 +- src/backend/utils/adt/numeric.c | 13 ++- src/backend/utils/adt/orderedsetaggs.c | 4 +- src/backend/utils/adt/pg_locale_libc.c | 6 +- src/backend/utils/adt/pg_ndistinct.c | 2 +- src/backend/utils/adt/rangetypes.c | 2 +- src/backend/utils/adt/rangetypes_gist.c | 15 ++-- src/backend/utils/adt/rangetypes_selfuncs.c | 4 +- src/backend/utils/adt/rangetypes_spgist.c | 18 ++--- src/backend/utils/adt/rangetypes_typanalyze.c | 8 +- src/backend/utils/adt/regexp.c | 20 ++--- src/backend/utils/adt/rowtypes.c | 24 +++--- src/backend/utils/adt/ruleutils.c | 4 +- src/backend/utils/adt/selfuncs.c | 4 +- src/backend/utils/adt/skipsupport.c | 2 +- src/backend/utils/adt/tid.c | 6 +- src/backend/utils/adt/timestamp.c | 46 +++++------ src/backend/utils/adt/tsginidx.c | 10 +-- src/backend/utils/adt/tsgistidx.c | 10 +-- src/backend/utils/adt/tsquery.c | 12 +-- src/backend/utils/adt/tsquery_cleanup.c | 2 +- src/backend/utils/adt/tsquery_gist.c | 4 +- src/backend/utils/adt/tsquery_op.c | 14 ++-- src/backend/utils/adt/tsquery_util.c | 18 ++--- src/backend/utils/adt/tsrank.c | 13 ++- src/backend/utils/adt/tsvector.c | 4 +- src/backend/utils/adt/tsvector_op.c | 10 +-- src/backend/utils/adt/tsvector_parser.c | 6 +- src/backend/utils/adt/uuid.c | 4 +- src/backend/utils/adt/varlena.c | 2 +- src/backend/utils/adt/xml.c | 6 +- src/backend/utils/cache/catcache.c | 4 +- src/backend/utils/cache/evtcache.c | 2 +- src/backend/utils/cache/inval.c | 2 +- src/backend/utils/cache/lsyscache.c | 6 +- src/backend/utils/cache/partcache.c | 24 +++--- src/backend/utils/cache/plancache.c | 15 ++-- src/backend/utils/cache/relcache.c | 30 +++---- src/backend/utils/cache/typcache.c | 2 +- src/backend/utils/error/elog.c | 2 +- src/backend/utils/fmgr/funcapi.c | 2 +- src/backend/utils/init/postinit.c | 2 +- src/backend/utils/mb/mbutils.c | 4 +- src/backend/utils/misc/conffiles.c | 2 +- src/backend/utils/misc/guc-file.l | 4 +- src/backend/utils/misc/guc.c | 4 +- src/backend/utils/misc/injection_point.c | 2 +- src/backend/utils/misc/queryenvironment.c | 2 +- src/backend/utils/misc/tzparser.c | 2 +- src/backend/utils/mmgr/dsa.c | 4 +- src/backend/utils/sort/logtape.c | 6 +- src/backend/utils/sort/sharedtuplestore.c | 4 +- src/backend/utils/sort/tuplesort.c | 2 +- src/backend/utils/sort/tuplesortvariants.c | 12 +-- src/backend/utils/sort/tuplestore.c | 2 +- src/backend/utils/time/snapmgr.c | 2 +- 333 files changed, 1358 insertions(+), 1465 deletions(-)
