From 229fcc1ada82c46ffe80ab60779316de4e273831 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Mon, 22 Aug 2022 16:51:52 +0200 Subject: [PATCH 3/5] Remove no longer needed null pointer checks before pfree() --- contrib/bloom/blscan.c | 6 +- contrib/dblink/dblink.c | 9 +- contrib/lo/lo.c | 6 +- contrib/pageinspect/heapfuncs.c | 6 +- .../pg_stat_statements/pg_stat_statements.c | 6 +- contrib/pg_trgm/trgm_gist.c | 9 +- contrib/pgcrypto/px.c | 3 +- contrib/postgres_fdw/connection.c | 3 +- contrib/postgres_fdw/postgres_fdw.c | 3 +- contrib/sepgsql/label.c | 4 +- contrib/sepgsql/uavc.c | 6 +- contrib/tablefunc/tablefunc.c | 10 +-- contrib/xml2/xpath.c | 6 +- src/backend/access/common/printtup.c | 9 +- src/backend/access/common/reloptions.c | 6 +- src/backend/access/gin/gindatapage.c | 3 +- src/backend/access/gin/ginget.c | 3 +- src/backend/access/gin/ginscan.c | 3 +- src/backend/access/gin/ginvacuum.c | 3 +- src/backend/access/gist/gistbuild.c | 3 +- src/backend/access/hash/hash.c | 3 +- src/backend/access/heap/heapam.c | 12 +-- src/backend/access/heap/vacuumlazy.c | 3 +- src/backend/access/index/genam.c | 6 +- src/backend/access/nbtree/nbtpage.c | 15 ++-- src/backend/access/nbtree/nbtree.c | 9 +- src/backend/access/spgist/spgscan.c | 33 ++----- src/backend/access/transam/multixact.c | 3 +- src/backend/access/transam/twophase.c | 3 +- src/backend/access/transam/xact.c | 15 ++-- src/backend/access/transam/xlog.c | 3 +- src/backend/access/transam/xlogreader.c | 6 +- src/backend/catalog/dependency.c | 3 +- src/backend/catalog/pg_shdepend.c | 6 +- src/backend/catalog/pg_subscription.c | 3 +- src/backend/commands/analyze.c | 3 +- src/backend/commands/explain.c | 3 +- src/backend/commands/indexcmds.c | 3 +- src/backend/commands/trigger.c | 12 +-- src/backend/executor/execTuples.c | 18 ++-- src/backend/executor/nodeGather.c | 3 +- src/backend/executor/nodeGatherMerge.c | 3 +- src/backend/executor/nodeTidscan.c | 3 +- src/backend/executor/spi.c | 3 +- src/backend/executor/tstoreReceiver.c | 6 +- src/backend/jit/llvm/llvmjit.c | 3 +- src/backend/libpq/auth-scram.c | 6 +- src/backend/libpq/auth.c | 6 +- src/backend/libpq/be-secure-openssl.c | 14 +-- src/backend/nodes/bitmapset.c | 5 +- src/backend/nodes/tidbitmap.c | 6 +- src/backend/optimizer/plan/planner.c | 3 +- src/backend/parser/scan.l | 3 +- src/backend/postmaster/autovacuum.c | 18 ++-- src/backend/postmaster/checkpointer.c | 3 +- src/backend/postmaster/syslogger.c | 9 +- .../replication/logical/reorderbuffer.c | 33 +++---- src/backend/replication/logical/snapbuild.c | 12 +-- src/backend/replication/logical/worker.c | 4 +- src/backend/replication/walreceiver.c | 7 +- src/backend/storage/buffer/freelist.c | 4 +- src/backend/storage/ipc/shm_mq.c | 3 +- src/backend/storage/lmgr/lock.c | 3 +- src/backend/tcop/postgres.c | 3 +- src/backend/tsearch/dict_thesaurus.c | 9 +- src/backend/tsearch/spell.c | 6 +- src/backend/tsearch/to_tsany.c | 3 +- src/backend/tsearch/wparser_def.c | 6 +- src/backend/utils/activity/pgstat_shmem.c | 3 +- src/backend/utils/adt/jsonb_util.c | 6 +- src/backend/utils/adt/jsonpath_scan.l | 3 +- src/backend/utils/adt/like_support.c | 6 +- src/backend/utils/adt/numeric.c | 5 +- src/backend/utils/adt/pg_locale.c | 3 +- src/backend/utils/adt/tsvector_op.c | 3 +- src/backend/utils/adt/tsvector_parser.c | 2 +- src/backend/utils/adt/varlena.c | 9 +- src/backend/utils/adt/xml.c | 4 +- src/backend/utils/cache/attoptcache.c | 3 +- src/backend/utils/cache/lsyscache.c | 9 +- src/backend/utils/cache/relcache.c | 45 +++------- src/backend/utils/cache/spccache.c | 3 +- src/backend/utils/cache/ts_cache.c | 3 +- src/backend/utils/cache/typcache.c | 3 +- src/backend/utils/error/elog.c | 85 ++++++------------- src/backend/utils/init/miscinit.c | 3 +- src/backend/utils/mb/stringinfo_mb.c | 3 +- src/backend/utils/misc/guc-file.l | 21 ++--- src/backend/utils/misc/guc.c | 3 +- src/backend/utils/resowner/resowner.c | 3 +- src/backend/utils/sort/logtape.c | 9 +- src/backend/utils/sort/sharedtuplestore.c | 3 +- src/bin/pg_verifybackup/parse_manifest.c | 42 +++------ src/common/compression.c | 3 +- src/include/replication/walreceiver.h | 3 +- src/pl/plperl/plperl.c | 3 +- src/pl/plpython/plpy_elog.c | 6 +- src/pl/plpython/plpy_exec.c | 9 +- src/pl/plpython/plpy_plpymodule.c | 3 +- src/pl/plpython/plpy_typeio.c | 6 +- .../modules/test_oat_hooks/test_oat_hooks.c | 6 +- 101 files changed, 250 insertions(+), 527 deletions(-) diff --git a/contrib/bloom/blscan.c b/contrib/bloom/blscan.c index 4c923488bd..945d37d316 100644 --- a/contrib/bloom/blscan.c +++ b/contrib/bloom/blscan.c @@ -50,8 +50,7 @@ blrescan(IndexScanDesc scan, ScanKey scankey, int nscankeys, { BloomScanOpaque so = (BloomScanOpaque) scan->opaque; - if (so->sign) - pfree(so->sign); + pfree(so->sign); so->sign = NULL; if (scankey && scan->numberOfKeys > 0) @@ -69,8 +68,7 @@ blendscan(IndexScanDesc scan) { BloomScanOpaque so = (BloomScanOpaque) scan->opaque; - if (so->sign) - pfree(so->sign); + pfree(so->sign); so->sign = NULL; } diff --git a/contrib/dblink/dblink.c b/contrib/dblink/dblink.c index e323fdd0e6..69fce2a3e9 100644 --- a/contrib/dblink/dblink.c +++ b/contrib/dblink/dblink.c @@ -342,8 +342,7 @@ dblink_connect(PG_FUNCTION_ARGS) msg = pchomp(PQerrorMessage(conn)); PQfinish(conn); ReleaseExternalFD(); - if (rconn) - pfree(rconn); + pfree(rconn); ereport(ERROR, (errcode(ERRCODE_SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION), @@ -1274,8 +1273,7 @@ storeRow(volatile storeInfo *sinfo, PGresult *res, bool first) * Set up sufficiently-wide string pointers array; this won't change * in size so it's easy to preallocate. */ - if (sinfo->cstrs) - pfree(sinfo->cstrs); + pfree(sinfo->cstrs); sinfo->cstrs = (char **) palloc(nfields * sizeof(char *)); } @@ -2644,8 +2642,7 @@ dblink_security_check(PGconn *conn, remoteConn *rconn) { PQfinish(conn); ReleaseExternalFD(); - if (rconn) - pfree(rconn); + pfree(rconn); ereport(ERROR, (errcode(ERRCODE_S_R_E_PROHIBITED_SQL_STATEMENT_ATTEMPTED), diff --git a/contrib/lo/lo.c b/contrib/lo/lo.c index 457be26c4e..46909ead07 100644 --- a/contrib/lo/lo.c +++ b/contrib/lo/lo.c @@ -83,10 +83,8 @@ lo_manage(PG_FUNCTION_ARGS) DirectFunctionCall1(be_lo_unlink, ObjectIdGetDatum(atooid(orig))); - if (newv) - pfree(newv); - if (orig) - pfree(orig); + pfree(newv); + pfree(orig); } /* diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index 2ff70405cf..fb356ffd7c 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -397,8 +397,7 @@ tuple_data_split_internal(Oid relid, char *tupdata, raw_attrs = accumArrayResult(raw_attrs, PointerGetDatum(attr_data), is_null, BYTEAOID, CurrentMemoryContext); - if (attr_data) - pfree(attr_data); + pfree(attr_data); } if (tupdata_len != off) @@ -489,8 +488,7 @@ tuple_data_split(PG_FUNCTION_ARGS) t_infomask, t_infomask2, t_bits, do_detoast); - if (t_bits) - pfree(t_bits); + pfree(t_bits); PG_RETURN_ARRAYTYPE_P(res); } diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c index ba868f0de9..6c08ae1bde 100644 --- a/contrib/pg_stat_statements/pg_stat_statements.c +++ b/contrib/pg_stat_statements/pg_stat_statements.c @@ -697,8 +697,7 @@ pgss_shmem_startup(void) errmsg("could not write file \"%s\": %m", PGSS_TEXT_FILE))); fail: - if (buffer) - pfree(buffer); + pfree(buffer); if (file) FreeFile(file); if (qfile) @@ -1407,8 +1406,7 @@ pgss_store(const char *query, uint64 queryId, LWLockRelease(pgss->lock); /* We postpone this clean-up until we're out of the lock */ - if (norm_query) - pfree(norm_query); + pfree(norm_query); } /* diff --git a/contrib/pg_trgm/trgm_gist.c b/contrib/pg_trgm/trgm_gist.c index 7a7be807af..457f13226b 100644 --- a/contrib/pg_trgm/trgm_gist.c +++ b/contrib/pg_trgm/trgm_gist.c @@ -290,8 +290,7 @@ gtrgm_consistent(PG_FUNCTION_ARGS) newcache->trigrams = NULL; newcache->graph = graph; - if (cache) - pfree(cache); + pfree(cache); fcinfo->flinfo->fn_extra = (void *) newcache; cache = newcache; } @@ -475,8 +474,7 @@ gtrgm_distance(PG_FUNCTION_ARGS) memcpy(newcache, query, querysize); memcpy(newcache + MAXALIGN(querysize), qtrg, VARSIZE(qtrg)); - if (cache) - pfree(cache); + pfree(cache); fcinfo->flinfo->fn_extra = newcache; cache = newcache; } @@ -714,8 +712,7 @@ gtrgm_penalty(PG_FUNCTION_ARGS) cachedVal = (TRGM *) (newcache + MAXALIGN(siglen)); memcpy(cachedVal, newval, newvalsize); - if (cache) - pfree(cache); + pfree(cache); fcinfo->flinfo->fn_extra = newcache; cache = newcache; } diff --git a/contrib/pgcrypto/px.c b/contrib/pgcrypto/px.c index 3b098c6151..53d1aceda6 100644 --- a/contrib/pgcrypto/px.c +++ b/contrib/pgcrypto/px.c @@ -208,8 +208,7 @@ combo_init(PX_Combo *cx, const uint8 *key, unsigned klen, err = px_cipher_init(c, keybuf, klen, ivbuf); - if (ivbuf) - pfree(ivbuf); + pfree(ivbuf); pfree(keybuf); return err; diff --git a/contrib/postgres_fdw/connection.c b/contrib/postgres_fdw/connection.c index 939d114f02..cf13049a7b 100644 --- a/contrib/postgres_fdw/connection.c +++ b/contrib/postgres_fdw/connection.c @@ -500,8 +500,7 @@ connect_pg_server(ForeignServer *server, UserMapping *user) /* Prepare new session for use */ configure_remote_session(conn); - if (appname != NULL) - pfree(appname); + pfree(appname); pfree(keywords); pfree(values); } diff --git a/contrib/postgres_fdw/postgres_fdw.c b/contrib/postgres_fdw/postgres_fdw.c index 16320170ce..1c9c771a28 100644 --- a/contrib/postgres_fdw/postgres_fdw.c +++ b/contrib/postgres_fdw/postgres_fdw.c @@ -6032,8 +6032,7 @@ postgresGetForeignJoinPaths(PlannerInfo *root, if (!foreign_join_ok(root, joinrel, jointype, outerrel, innerrel, extra)) { /* Free path required for EPQ if we copied one; we don't need it now */ - if (epq_path) - pfree(epq_path); + pfree(epq_path); return; } diff --git a/contrib/sepgsql/label.c b/contrib/sepgsql/label.c index 6e7c0d7cff..e9476c9322 100644 --- a/contrib/sepgsql/label.c +++ b/contrib/sepgsql/label.c @@ -177,9 +177,7 @@ sepgsql_xact_callback(XactEvent event, void *arg) else new_label = NULL; - if (client_label_committed) - pfree(client_label_committed); - + pfree(client_label_committed); client_label_committed = new_label; /* diff --git a/contrib/sepgsql/uavc.c b/contrib/sepgsql/uavc.c index 76597983f4..042a51dbfd 100644 --- a/contrib/sepgsql/uavc.c +++ b/contrib/sepgsql/uavc.c @@ -109,8 +109,7 @@ sepgsql_avc_reclaim(void) pfree(cache->scontext); pfree(cache->tcontext); - if (cache->ncontext) - pfree(cache->ncontext); + pfree(cache->ncontext); pfree(cache); avc_num_caches--; @@ -428,8 +427,7 @@ sepgsql_avc_check_perms(const ObjectAddress *tobject, rc = sepgsql_avc_check_perms_label(tcontext, tclass, required, audit_name, abort_on_violation); - if (tcontext) - pfree(tcontext); + pfree(tcontext); return rc; } diff --git a/contrib/tablefunc/tablefunc.c b/contrib/tablefunc/tablefunc.c index e308228bde..8d33510cee 100644 --- a/contrib/tablefunc/tablefunc.c +++ b/contrib/tablefunc/tablefunc.c @@ -93,11 +93,8 @@ typedef struct #define xpfree(var_) \ do { \ - if (var_ != NULL) \ - { \ - pfree(var_); \ - var_ = NULL; \ - } \ + pfree(var_); \ + var_ = NULL; \ } while (0) #define xpstrdup(tgtvar_, srcvar_) \ @@ -584,8 +581,7 @@ crosstab(PG_FUNCTION_ARGS) /* Clean up */ for (i = 0; i < num_categories + 1; i++) - if (values[i] != NULL) - pfree(values[i]); + pfree(values[i]); pfree(values); } diff --git a/contrib/xml2/xpath.c b/contrib/xml2/xpath.c index b8ee757674..b9297967bf 100644 --- a/contrib/xml2/xpath.c +++ b/contrib/xml2/xpath.c @@ -711,10 +711,8 @@ xpath_table(PG_FUNCTION_ARGS) xmlFreeDoc(doctree); doctree = NULL; - if (pkey) - pfree(pkey); - if (xmldoc) - pfree(xmldoc); + pfree(pkey); + pfree(xmldoc); } } PG_CATCH(); diff --git a/src/backend/access/common/printtup.c b/src/backend/access/common/printtup.c index d2f3b57288..a1736d1010 100644 --- a/src/backend/access/common/printtup.c +++ b/src/backend/access/common/printtup.c @@ -253,8 +253,7 @@ printtup_prepare_info(DR_printtup *myState, TupleDesc typeinfo, int numAttrs) int i; /* get rid of any old data */ - if (myState->myinfo) - pfree(myState->myinfo); + pfree(myState->myinfo); myState->myinfo = NULL; myState->attrinfo = typeinfo; @@ -387,14 +386,12 @@ printtup_shutdown(DestReceiver *self) { DR_printtup *myState = (DR_printtup *) self; - if (myState->myinfo) - pfree(myState->myinfo); + pfree(myState->myinfo); myState->myinfo = NULL; myState->attrinfo = NULL; - if (myState->buf.data) - pfree(myState->buf.data); + pfree(myState->buf.data); myState->buf.data = NULL; if (myState->tmpcontext) diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c index 609329bb21..2e56dedad9 100644 --- a/src/backend/access/common/reloptions.c +++ b/src/backend/access/common/reloptions.c @@ -617,8 +617,7 @@ initialize_reloptions(void) } j += num_custom_options; - if (relOpts) - pfree(relOpts); + pfree(relOpts); relOpts = MemoryContextAlloc(TopMemoryContext, (j + 1) * sizeof(relopt_gen *)); @@ -1972,8 +1971,7 @@ build_local_reloptions(local_relopts *relopts, Datum options, bool validate) foreach(lc, relopts->validators) ((relopts_validator) lfirst(lc)) (opts, vals, noptions); - if (elems) - pfree(elems); + pfree(elems); return opts; } diff --git a/src/backend/access/gin/gindatapage.c b/src/backend/access/gin/gindatapage.c index 7c76d1f90d..41783d2e38 100644 --- a/src/backend/access/gin/gindatapage.c +++ b/src/backend/access/gin/gindatapage.c @@ -1614,8 +1614,7 @@ leafRepackItems(disassembledLeaf *leaf, ItemPointer remaining) * The new segment is inserted after this one, so it will * be processed in the next iteration of this loop. */ - if (seginfo->seg) - pfree(seginfo->seg); + pfree(seginfo->seg); seginfo->seg = ginCompressPostingList(seginfo->items, seginfo->nitems, GinPostingListSegmentTargetSize, diff --git a/src/backend/access/gin/ginget.c b/src/backend/access/gin/ginget.c index fc85ba99ac..78f4df1bf8 100644 --- a/src/backend/access/gin/ginget.c +++ b/src/backend/access/gin/ginget.c @@ -327,8 +327,7 @@ startScanEntry(GinState *ginstate, GinScanEntry entry, Snapshot snapshot) entry->buffer = InvalidBuffer; ItemPointerSetMin(&entry->curItem); entry->offset = InvalidOffsetNumber; - if (entry->list) - pfree(entry->list); + pfree(entry->list); entry->list = NULL; entry->nlist = 0; entry->matchBitmap = NULL; diff --git a/src/backend/access/gin/ginscan.c b/src/backend/access/gin/ginscan.c index b776d04459..3ffbc82b29 100644 --- a/src/backend/access/gin/ginscan.c +++ b/src/backend/access/gin/ginscan.c @@ -243,8 +243,7 @@ ginFreeScanKeys(GinScanOpaque so) if (entry->buffer != InvalidBuffer) ReleaseBuffer(entry->buffer); - if (entry->list) - pfree(entry->list); + pfree(entry->list); if (entry->matchIterator) tbm_end_iterate(entry->matchIterator); if (entry->matchBitmap) diff --git a/src/backend/access/gin/ginvacuum.c b/src/backend/access/gin/ginvacuum.c index b4fa5f6bf8..fab8e954c9 100644 --- a/src/backend/access/gin/ginvacuum.c +++ b/src/backend/access/gin/ginvacuum.c @@ -544,8 +544,7 @@ ginVacuumEntryPage(GinVacuumState *gvs, Buffer buffer, BlockNumber *roots, uint3 itup = GinFormTuple(&gvs->ginstate, attnum, key, category, (char *) plist, plistsize, nitems, true); - if (plist) - pfree(plist); + pfree(plist); PageIndexTupleDelete(tmppage, i); if (PageAddItem(tmppage, (Item) itup, IndexTupleSize(itup), i, false, false) != i) diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c index 374e64e808..639c312f40 100644 --- a/src/backend/access/gist/gistbuild.c +++ b/src/backend/access/gist/gistbuild.c @@ -448,8 +448,7 @@ gist_indexsortbuild(GISTBuildState *state) gist_indexsortbuild_levelstate_flush(state, levelstate); parent = levelstate->parent; for (int i = 0; i < GIST_SORTED_BUILD_PAGE_NUM; i++) - if (levelstate->pages[i]) - pfree(levelstate->pages[i]); + pfree(levelstate->pages[i]); pfree(levelstate); levelstate = parent; } diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c index c361509d68..e5cd9f08d9 100644 --- a/src/backend/access/hash/hash.c +++ b/src/backend/access/hash/hash.c @@ -439,8 +439,7 @@ hashendscan(IndexScanDesc scan) _hash_dropscanbuf(rel, so); - if (so->killedItems != NULL) - pfree(so->killedItems); + pfree(so->killedItems); pfree(so); scan->opaque = NULL; } diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index aab8d6fa4e..e79c334b81 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -1277,14 +1277,12 @@ heap_endscan(TableScanDesc sscan) */ RelationDecrementReferenceCount(scan->rs_base.rs_rd); - if (scan->rs_base.rs_key) - pfree(scan->rs_base.rs_key); + pfree(scan->rs_base.rs_key); if (scan->rs_strategy != NULL) FreeAccessStrategy(scan->rs_strategy); - if (scan->rs_parallelworkerdata != NULL) - pfree(scan->rs_parallelworkerdata); + pfree(scan->rs_parallelworkerdata); if (scan->rs_base.rs_flags & SO_TEMP_SNAPSHOT) UnregisterSnapshot(scan->rs_base.rs_snapshot); @@ -4377,8 +4375,7 @@ heap_lock_tuple(Relation relation, HeapTuple tuple, } } - if (members) - pfree(members); + pfree(members); } else if (TransactionIdIsCurrentTransactionId(xwait)) { @@ -5536,8 +5533,7 @@ heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid, goto out_locked; } } - if (members) - pfree(members); + pfree(members); } else { diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c index b802ed247e..65f8e0db27 100644 --- a/src/backend/access/heap/vacuumlazy.c +++ b/src/backend/access/heap/vacuumlazy.c @@ -797,8 +797,7 @@ heap_vacuum_rel(Relation rel, VacuumParams *params, /* Cleanup index statistics and index names */ for (int i = 0; i < vacrel->nindexes; i++) { - if (vacrel->indstats[i]) - pfree(vacrel->indstats[i]); + pfree(vacrel->indstats[i]); if (instrument) pfree(indnames[i]); diff --git a/src/backend/access/index/genam.c b/src/backend/access/index/genam.c index 98af5347b9..8f7f5728a7 100644 --- a/src/backend/access/index/genam.c +++ b/src/backend/access/index/genam.c @@ -144,10 +144,8 @@ RelationGetIndexScan(Relation indexRelation, int nkeys, int norderbys) void IndexScanEnd(IndexScanDesc scan) { - if (scan->keyData != NULL) - pfree(scan->keyData); - if (scan->orderByData != NULL) - pfree(scan->orderByData); + pfree(scan->keyData); + pfree(scan->orderByData); pfree(scan); } diff --git a/src/backend/access/nbtree/nbtpage.c b/src/backend/access/nbtree/nbtpage.c index 8b96708b3e..66cca869d5 100644 --- a/src/backend/access/nbtree/nbtpage.c +++ b/src/backend/access/nbtree/nbtpage.c @@ -391,8 +391,7 @@ _bt_getroot(Relation rel, int access) } _bt_relbuf(rel, rootbuf); /* Cache is stale, throw it away */ - if (rel->rd_amcache) - pfree(rel->rd_amcache); + pfree(rel->rd_amcache); rel->rd_amcache = NULL; } @@ -592,8 +591,7 @@ _bt_gettrueroot(Relation rel) * is out-of-date anyway. In light of point (b), it's probably safest to * actively flush any cached metapage info. */ - if (rel->rd_amcache) - pfree(rel->rd_amcache); + pfree(rel->rd_amcache); rel->rd_amcache = NULL; metabuf = _bt_getbuf(rel, BTREE_METAPAGE, BT_READ); @@ -1267,8 +1265,7 @@ _bt_delitems_vacuum(Relation rel, Buffer buf, END_CRIT_SECTION(); /* can't leak memory here */ - if (updatedbuf != NULL) - pfree(updatedbuf); + pfree(updatedbuf); /* free tuples allocated within _bt_delitems_update() */ for (int i = 0; i < nupdatable; i++) pfree(updatable[i]->itup); @@ -1384,8 +1381,7 @@ _bt_delitems_delete(Relation rel, Buffer buf, TransactionId latestRemovedXid, END_CRIT_SECTION(); /* can't leak memory here */ - if (updatedbuf != NULL) - pfree(updatedbuf); + pfree(updatedbuf); /* free tuples allocated within _bt_delitems_update() */ for (int i = 0; i < nupdatable; i++) pfree(updatable[i]->itup); @@ -2961,8 +2957,7 @@ _bt_pendingfsm_finalize(Relation rel, BTVacState *vstate) if (vstate->npendingpages == 0) { /* Just free memory when nothing to do */ - if (vstate->pendingpages) - pfree(vstate->pendingpages); + pfree(vstate->pendingpages); return; } diff --git a/src/backend/access/nbtree/nbtree.c b/src/backend/access/nbtree/nbtree.c index b52eca8f38..6e1604c799 100644 --- a/src/backend/access/nbtree/nbtree.c +++ b/src/backend/access/nbtree/nbtree.c @@ -464,15 +464,12 @@ btendscan(IndexScanDesc scan) /* No need to invalidate positions, the RAM is about to be freed. */ /* Release storage */ - if (so->keyData != NULL) - pfree(so->keyData); + pfree(so->keyData); /* so->arrayKeyData and so->arrayKeys are in arrayContext */ if (so->arrayContext != NULL) MemoryContextDelete(so->arrayContext); - if (so->killedItems != NULL) - pfree(so->killedItems); - if (so->currTuples != NULL) - pfree(so->currTuples); + pfree(so->killedItems); + pfree(so->currTuples); /* so->markTuples should not be pfree'd, see btrescan */ pfree(so); } diff --git a/src/backend/access/spgist/spgscan.c b/src/backend/access/spgist/spgscan.c index 87a345d290..7ccdba37db 100644 --- a/src/backend/access/spgist/spgscan.c +++ b/src/backend/access/spgist/spgscan.c @@ -90,11 +90,8 @@ spgFreeSearchItem(SpGistScanOpaque so, SpGistSearchItem *item) DatumGetPointer(item->value) != NULL) pfree(DatumGetPointer(item->value)); - if (item->leafTuple) - pfree(item->leafTuple); - - if (item->traversalValue) - pfree(item->traversalValue); + pfree(item->leafTuple); + pfree(item->traversalValue); pfree(item); } @@ -175,19 +172,14 @@ resetSpGistScanOpaque(SpGistScanOpaque so) if (so->numberOfOrderBys > 0) { /* Must pfree distances to avoid memory leak */ - int i; - - for (i = 0; i < so->nPtrs; i++) - if (so->distances[i]) - pfree(so->distances[i]); + for (int i = 0; i < so->nPtrs; i++) + pfree(so->distances[i]); } if (so->want_itup) { /* Must pfree reconstructed tuples to avoid memory leak */ - int i; - - for (i = 0; i < so->nPtrs; i++) + for (int i = 0; i < so->nPtrs; i++) pfree(so->reconTups[i]); } so->iPtr = so->nPtrs = 0; @@ -433,15 +425,13 @@ spgendscan(IndexScanDesc scan) MemoryContextDelete(so->tempCxt); MemoryContextDelete(so->traversalCxt); - if (so->keyData) - pfree(so->keyData); + pfree(so->keyData); if (so->state.leafTupDesc && so->state.leafTupDesc != RelationGetDescr(so->state.index)) FreeTupleDesc(so->state.leafTupDesc); - if (so->state.deadTupleStorage) - pfree(so->state.deadTupleStorage); + pfree(so->state.deadTupleStorage); if (scan->numberOfOrderBys > 0) { @@ -1054,19 +1044,14 @@ spggettuple(IndexScanDesc scan, ScanDirection dir) if (so->numberOfOrderBys > 0) { /* Must pfree distances to avoid memory leak */ - int i; - - for (i = 0; i < so->nPtrs; i++) - if (so->distances[i]) + for (int i = 0; i < so->nPtrs; i++) pfree(so->distances[i]); } if (so->want_itup) { /* Must pfree reconstructed tuples to avoid memory leak */ - int i; - - for (i = 0; i < so->nPtrs; i++) + for (int i = 0; i < so->nPtrs; i++) pfree(so->reconTups[i]); } so->iPtr = so->nPtrs = 0; diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 8f7d12950e..bdd1a7dc40 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -1658,8 +1658,7 @@ mxid_to_string(MultiXactId multi, int nmembers, MultiXactMember *members) StringInfoData buf; int i; - if (str != NULL) - pfree(str); + pfree(str); initStringInfo(&buf); diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 803d169f57..75edd8ec2b 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -2033,8 +2033,7 @@ StandbyRecoverPreparedTransactions(void) buf = ProcessTwoPhaseBuffer(xid, gxact->prepare_start_lsn, gxact->ondisk, false, false); - if (buf != NULL) - pfree(buf); + pfree(buf); } LWLockRelease(TwoPhaseStateLock); } diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 50f092d7eb..c8a5b4610c 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -1522,8 +1522,7 @@ RecordTransactionCommit(void) XactLastRecEnd = 0; cleanup: /* Clean up local data */ - if (rels) - pfree(rels); + pfree(rels); if (ndroppedstats) pfree(droppedstats); @@ -1680,8 +1679,7 @@ AtSubCommit_childXids(void) s->parent->nChildXids = new_nChildXids; /* Release child's array to avoid leakage */ - if (s->childXids != NULL) - pfree(s->childXids); + pfree(s->childXids); /* We must reset these to avoid double-free if fail later in commit */ s->childXids = NULL; s->nChildXids = 0; @@ -1806,8 +1804,7 @@ RecordTransactionAbort(bool isSubXact) XactLastRecEnd = 0; /* And clean up local data */ - if (rels) - pfree(rels); + pfree(rels); if (ndroppedstats) pfree(droppedstats); @@ -1885,8 +1882,7 @@ AtSubAbort_childXids(void) * AtSubCommit_childXids). This means we'd better free the array * explicitly at abort to avoid leakage. */ - if (s->childXids != NULL) - pfree(s->childXids); + pfree(s->childXids); s->childXids = NULL; s->nChildXids = 0; s->maxChildXids = 0; @@ -5291,8 +5287,7 @@ PopTransaction(void) CurrentResourceOwner = s->parent->curTransactionOwner; /* Free the old child structure */ - if (s->name) - pfree(s->name); + pfree(s->name); pfree(s); } diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 87b243e0d4..6c876a6e18 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -4419,8 +4419,7 @@ XLOGShmemInit(void) /* Initialize local copy of WALInsertLocks */ WALInsertLocks = XLogCtl->Insert.WALInsertLocks; - if (localControlFile) - pfree(localControlFile); + pfree(localControlFile); return; } memset(XLogCtl, 0, sizeof(XLogCtlData)); diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c index f17e80948d..0b5f2768fc 100644 --- a/src/backend/access/transam/xlogreader.c +++ b/src/backend/access/transam/xlogreader.c @@ -176,8 +176,7 @@ XLogReaderFree(XLogReaderState *state) pfree(state->decode_buffer); pfree(state->errormsg_buf); - if (state->readRecordBuf) - pfree(state->readRecordBuf); + pfree(state->readRecordBuf); pfree(state->readBuf); pfree(state); } @@ -220,8 +219,7 @@ allocate_recordbuf(XLogReaderState *state, uint32 reclength) #endif - if (state->readRecordBuf) - pfree(state->readRecordBuf); + pfree(state->readRecordBuf); state->readRecordBuf = (char *) palloc_extended(newSize, MCXT_ALLOC_NO_OOM); if (state->readRecordBuf == NULL) diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c index 39768fa22b..e33d34a4a3 100644 --- a/src/backend/catalog/dependency.c +++ b/src/backend/catalog/dependency.c @@ -2821,8 +2821,7 @@ void free_object_addresses(ObjectAddresses *addrs) { pfree(addrs->refs); - if (addrs->extras) - pfree(addrs->extras); + pfree(addrs->extras); pfree(addrs); } diff --git a/src/backend/catalog/pg_shdepend.c b/src/backend/catalog/pg_shdepend.c index f2f227f887..111e689d4c 100644 --- a/src/backend/catalog/pg_shdepend.c +++ b/src/backend/catalog/pg_shdepend.c @@ -543,10 +543,8 @@ updateAclDependencies(Oid classId, Oid objectId, int32 objsubId, table_close(sdepRel, RowExclusiveLock); } - if (oldmembers) - pfree(oldmembers); - if (newmembers) - pfree(newmembers); + pfree(oldmembers); + pfree(newmembers); } /* diff --git a/src/backend/catalog/pg_subscription.c b/src/backend/catalog/pg_subscription.c index a506fc3ec8..1fb333ccf5 100644 --- a/src/backend/catalog/pg_subscription.c +++ b/src/backend/catalog/pg_subscription.c @@ -160,8 +160,7 @@ FreeSubscription(Subscription *sub) { pfree(sub->name); pfree(sub->conninfo); - if (sub->slotname) - pfree(sub->slotname); + pfree(sub->slotname); list_free_deep(sub->publications); pfree(sub); } diff --git a/src/backend/commands/analyze.c b/src/backend/commands/analyze.c index a7966fff83..6663e70861 100644 --- a/src/backend/commands/analyze.c +++ b/src/backend/commands/analyze.c @@ -717,8 +717,7 @@ do_analyze_rel(Relation onerel, VacuumParams *params, stats = index_vacuum_cleanup(&ivinfo, NULL); - if (stats) - pfree(stats); + pfree(stats); } } diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index e078456b19..88d05a6edb 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -1061,8 +1061,7 @@ report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es) ExplainPropertyFloat("Calls", NULL, instr->ntuples, 0, es); } - if (conname) - pfree(conname); + pfree(conname); ExplainCloseGroup("Trigger", NULL, true, es); } diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 667f2a4cd1..605367d20d 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -301,8 +301,7 @@ CheckIndexCompatible(Oid oldId, ret = CompareOpclassOptions(opclassOptions, indexInfo->ii_OpclassOptions, old_natts); - if (opclassOptions) - pfree(opclassOptions); + pfree(opclassOptions); } /* Any change in exclusion operator selections breaks compatibility. */ diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 62a09fb131..349f297b7c 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -2194,12 +2194,9 @@ FreeTriggerDesc(TriggerDesc *trigdesc) pfree(trigger->tgargs[trigger->tgnargs]); pfree(trigger->tgargs); } - if (trigger->tgqual) - pfree(trigger->tgqual); - if (trigger->tgoldtable) - pfree(trigger->tgoldtable); - if (trigger->tgnewtable) - pfree(trigger->tgnewtable); + pfree(trigger->tgqual); + pfree(trigger->tgoldtable); + pfree(trigger->tgnewtable); trigger++; } pfree(trigdesc->triggers); @@ -5323,8 +5320,7 @@ AfterTriggerEndSubXact(bool isCommit) Assert(my_level < afterTriggers.maxtransdepth); /* If we saved a prior state, we don't need it anymore */ state = afterTriggers.trans_stack[my_level].state; - if (state != NULL) - pfree(state); + pfree(state); /* this avoids double pfree if error later: */ afterTriggers.trans_stack[my_level].state = NULL; Assert(afterTriggers.query_depth == diff --git a/src/backend/executor/execTuples.c b/src/backend/executor/execTuples.c index 06ac253ea0..6f1ccd424e 100644 --- a/src/backend/executor/execTuples.c +++ b/src/backend/executor/execTuples.c @@ -1211,10 +1211,8 @@ ExecResetTupleTable(List *tupleTable, /* tuple table */ { if (!TTS_FIXED(slot)) { - if (slot->tts_values) - pfree(slot->tts_values); - if (slot->tts_isnull) - pfree(slot->tts_isnull); + pfree(slot->tts_values); + pfree(slot->tts_isnull); } pfree(slot); } @@ -1261,10 +1259,8 @@ ExecDropSingleTupleTableSlot(TupleTableSlot *slot) ReleaseTupleDesc(slot->tts_tupleDescriptor); if (!TTS_FIXED(slot)) { - if (slot->tts_values) - pfree(slot->tts_values); - if (slot->tts_isnull) - pfree(slot->tts_isnull); + pfree(slot->tts_values); + pfree(slot->tts_isnull); } pfree(slot); } @@ -1301,10 +1297,8 @@ ExecSetSlotDescriptor(TupleTableSlot *slot, /* slot to change */ if (slot->tts_tupleDescriptor) ReleaseTupleDesc(slot->tts_tupleDescriptor); - if (slot->tts_values) - pfree(slot->tts_values); - if (slot->tts_isnull) - pfree(slot->tts_isnull); + pfree(slot->tts_values); + pfree(slot->tts_isnull); /* * Install the new descriptor; if it's refcounted, bump its refcount. diff --git a/src/backend/executor/nodeGather.c b/src/backend/executor/nodeGather.c index 1283d5b737..d984c15b22 100644 --- a/src/backend/executor/nodeGather.c +++ b/src/backend/executor/nodeGather.c @@ -404,8 +404,7 @@ ExecShutdownGatherWorkers(GatherState *node) ExecParallelFinish(node->pei); /* Flush local copy of reader array */ - if (node->reader) - pfree(node->reader); + pfree(node->reader); node->reader = NULL; } diff --git a/src/backend/executor/nodeGatherMerge.c b/src/backend/executor/nodeGatherMerge.c index 3b1007f352..0e518a348d 100644 --- a/src/backend/executor/nodeGatherMerge.c +++ b/src/backend/executor/nodeGatherMerge.c @@ -327,8 +327,7 @@ ExecShutdownGatherMergeWorkers(GatherMergeState *node) ExecParallelFinish(node->pei); /* Flush local copy of reader array */ - if (node->reader) - pfree(node->reader); + pfree(node->reader); node->reader = NULL; } diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c index a1c6325d64..c370fb9f79 100644 --- a/src/backend/executor/nodeTidscan.c +++ b/src/backend/executor/nodeTidscan.c @@ -442,8 +442,7 @@ ExecTidScan(PlanState *pstate) void ExecReScanTidScan(TidScanState *node) { - if (node->tss_TidList) - pfree(node->tss_TidList); + pfree(node->tss_TidList); node->tss_TidList = NULL; node->tss_NumTids = 0; node->tss_TidPtr = -1; diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 29bc26669b..ac5e145e39 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -1454,8 +1454,7 @@ SPI_cursor_open(const char *name, SPIPlanPtr plan, portal = SPI_cursor_open_internal(name, plan, paramLI, read_only); /* done with the transient ParamListInfo */ - if (paramLI) - pfree(paramLI); + pfree(paramLI); return portal; } diff --git a/src/backend/executor/tstoreReceiver.c b/src/backend/executor/tstoreReceiver.c index 0a19904b1f..8260a131a0 100644 --- a/src/backend/executor/tstoreReceiver.c +++ b/src/backend/executor/tstoreReceiver.c @@ -208,11 +208,9 @@ tstoreShutdownReceiver(DestReceiver *self) TStoreState *myState = (TStoreState *) self; /* Release workspace if any */ - if (myState->outvalues) - pfree(myState->outvalues); + pfree(myState->outvalues); myState->outvalues = NULL; - if (myState->tofree) - pfree(myState->tofree); + pfree(myState->tofree); myState->tofree = NULL; if (myState->tupmap) free_conversion_map(myState->tupmap); diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index 6c72d43beb..86362b0351 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -1094,8 +1094,7 @@ llvm_resolve_symbol(const char *symname, void *ctx) addr = (uintptr_t) LLVMSearchForAddressOfSymbol(symname); pfree(funcname); - if (modname) - pfree(modname); + pfree(modname); /* let LLVM will error out - should never happen */ if (!addr) diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c index ee7f52218a..a01e707aa5 100644 --- a/src/backend/libpq/auth-scram.c +++ b/src/backend/libpq/auth-scram.c @@ -486,8 +486,7 @@ pg_be_scram_build_secret(const char *password) SCRAM_DEFAULT_ITERATIONS, password, &errstr); - if (prep_password) - pfree(prep_password); + pfree(prep_password); return result; } @@ -548,8 +547,7 @@ scram_verify_plain_password(const char *username, const char *password, elog(ERROR, "could not compute server key: %s", errstr); } - if (prep_password) - pfree(prep_password); + pfree(prep_password); /* * Compare the secret's Server Key with the one computed from the diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index 1545ff9f16..6495c9ce6b 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -791,8 +791,7 @@ CheckPasswordAuth(Port *port, const char **logdetail) else result = STATUS_ERROR; - if (shadow_pass) - pfree(shadow_pass); + pfree(shadow_pass); pfree(passwd); if (result == STATUS_OK) @@ -847,8 +846,7 @@ CheckPWChallengeAuth(Port *port, const char **logdetail) auth_result = CheckSASLAuth(&pg_be_scram_mech, port, shadow_pass, logdetail); - if (shadow_pass) - pfree(shadow_pass); + pfree(shadow_pass); /* * If get_role_password() returned error, return error, even if the diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index 55d4b29f7e..d0f3478a08 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -679,17 +679,11 @@ be_tls_close(Port *port) port->peer = NULL; } - if (port->peer_cn) - { - pfree(port->peer_cn); - port->peer_cn = NULL; - } + pfree(port->peer_cn); + port->peer_cn = NULL; - if (port->peer_dn) - { - pfree(port->peer_dn); - port->peer_dn = NULL; - } + pfree(port->peer_dn); + port->peer_dn = NULL; } ssize_t diff --git a/src/backend/nodes/bitmapset.c b/src/backend/nodes/bitmapset.c index 0a6c30e4eb..6e401c1902 100644 --- a/src/backend/nodes/bitmapset.c +++ b/src/backend/nodes/bitmapset.c @@ -202,13 +202,12 @@ bms_make_singleton(int x) /* * bms_free - free a bitmapset * - * Same as pfree except for allowing NULL input + * Same as pfree */ void bms_free(Bitmapset *a) { - if (a) - pfree(a); + pfree(a); } diff --git a/src/backend/nodes/tidbitmap.c b/src/backend/nodes/tidbitmap.c index a7a6b26668..c22fa2ec50 100644 --- a/src/backend/nodes/tidbitmap.c +++ b/src/backend/nodes/tidbitmap.c @@ -322,10 +322,8 @@ tbm_free(TIDBitmap *tbm) { if (tbm->pagetable) pagetable_destroy(tbm->pagetable); - if (tbm->spages) - pfree(tbm->spages); - if (tbm->schunks) - pfree(tbm->schunks); + pfree(tbm->spages); + pfree(tbm->schunks); pfree(tbm); } diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index cf9e0a74db..9e82aa2b4c 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -3059,8 +3059,7 @@ extract_rollup_sets(List *groupingSets) pfree(results); pfree(chains); for (i = 1; i <= num_sets; ++i) - if (adjacency[i]) - pfree(adjacency[i]); + pfree(adjacency[i]); pfree(adjacency); pfree(adjacency_buf); pfree(orig_sets); diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 882e081aae..2b3e6ec810 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -1433,6 +1433,5 @@ core_yyrealloc(void *ptr, yy_size_t bytes, core_yyscan_t yyscanner) void core_yyfree(void *ptr, core_yyscan_t yyscanner) { - if (ptr) - pfree(ptr); + pfree(ptr); } diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c index 70a9176c54..a9edc96027 100644 --- a/src/backend/postmaster/autovacuum.c +++ b/src/backend/postmaster/autovacuum.c @@ -2511,12 +2511,9 @@ do_autovacuum(void) /* be tidy */ deleted: - if (tab->at_datname != NULL) - pfree(tab->at_datname); - if (tab->at_nspname != NULL) - pfree(tab->at_nspname); - if (tab->at_relname != NULL) - pfree(tab->at_relname); + pfree(tab->at_datname); + pfree(tab->at_nspname); + pfree(tab->at_relname); pfree(tab); /* @@ -2702,12 +2699,9 @@ perform_work_item(AutoVacuumWorkItem *workitem) /* be tidy */ deleted2: - if (cur_datname) - pfree(cur_datname); - if (cur_nspname) - pfree(cur_nspname); - if (cur_relname) - pfree(cur_relname); + pfree(cur_datname); + pfree(cur_nspname); + pfree(cur_relname); } /* diff --git a/src/backend/postmaster/checkpointer.c b/src/backend/postmaster/checkpointer.c index 5fc076fc14..f490e106a9 100644 --- a/src/backend/postmaster/checkpointer.c +++ b/src/backend/postmaster/checkpointer.c @@ -1308,8 +1308,7 @@ AbsorbSyncRequests(void) END_CRIT_SECTION(); - if (requests) - pfree(requests); + pfree(requests); } /* diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c index d6d02e3c63..5b3db40bee 100644 --- a/src/backend/postmaster/syslogger.c +++ b/src/backend/postmaster/syslogger.c @@ -1329,8 +1329,7 @@ logfile_rotate_dest(bool time_based_rotation, int size_rotation_for, if (*logFile != NULL) fclose(*logFile); *logFile = NULL; - if (*last_file_name != NULL) - pfree(*last_file_name); + pfree(*last_file_name); *last_file_name = NULL; return true; } @@ -1386,8 +1385,7 @@ logfile_rotate_dest(bool time_based_rotation, int size_rotation_for, rotation_disabled = true; } - if (filename) - pfree(filename); + pfree(filename); return false; } @@ -1397,8 +1395,7 @@ logfile_rotate_dest(bool time_based_rotation, int size_rotation_for, *logFile = fh; /* instead of pfree'ing filename, remember it for next time */ - if (*last_file_name != NULL) - pfree(*last_file_name); + pfree(*last_file_name); *last_file_name = filename; return true; diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 1c21a1d14b..5628fff12e 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -437,23 +437,14 @@ ReorderBufferReturnTXN(ReorderBuffer *rb, ReorderBufferTXN *txn) /* free data that's contained */ - if (txn->gid != NULL) - { - pfree(txn->gid); - txn->gid = NULL; - } + pfree(txn->gid); + txn->gid = NULL; - if (txn->tuplecid_hash != NULL) - { - hash_destroy(txn->tuplecid_hash); - txn->tuplecid_hash = NULL; - } + hash_destroy(txn->tuplecid_hash); + txn->tuplecid_hash = NULL; - if (txn->invalidations) - { - pfree(txn->invalidations); - txn->invalidations = NULL; - } + pfree(txn->invalidations); + txn->invalidations = NULL; /* Reset the toast hash */ ReorderBufferToastReset(rb, txn); @@ -508,16 +499,13 @@ ReorderBufferReturnChange(ReorderBuffer *rb, ReorderBufferChange *change, } break; case REORDER_BUFFER_CHANGE_MESSAGE: - if (change->data.msg.prefix != NULL) - pfree(change->data.msg.prefix); + pfree(change->data.msg.prefix); change->data.msg.prefix = NULL; - if (change->data.msg.message != NULL) - pfree(change->data.msg.message); + pfree(change->data.msg.message); change->data.msg.message = NULL; break; case REORDER_BUFFER_CHANGE_INVALIDATION: - if (change->data.inval.invalidations) - pfree(change->data.inval.invalidations); + pfree(change->data.inval.invalidations); change->data.inval.invalidations = NULL; break; case REORDER_BUFFER_CHANGE_INTERNAL_SNAPSHOT: @@ -4865,8 +4853,7 @@ ReorderBufferToastReset(ReorderBuffer *rb, ReorderBufferTXN *txn) { dlist_mutable_iter it; - if (ent->reconstructed != NULL) - pfree(ent->reconstructed); + pfree(ent->reconstructed); dlist_foreach_modify(it, &ent->chunks) { diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index 1ff2c12240..08c98e6fbc 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -1805,10 +1805,8 @@ SnapBuildSerialize(SnapBuild *builder, XLogRecPtr lsn) ReorderBufferSetRestartPoint(builder->reorder, builder->last_serialized_snapshot); /* be tidy */ - if (ondisk) - pfree(ondisk); - if (catchange_xip) - pfree(catchange_xip); + pfree(ondisk); + pfree(catchange_xip); } /* @@ -1973,10 +1971,8 @@ SnapBuildRestore(SnapBuild *builder, XLogRecPtr lsn) return true; snapshot_not_interesting: - if (ondisk.builder.committed.xip != NULL) - pfree(ondisk.builder.committed.xip); - if (ondisk.builder.catchange.xip != NULL) - pfree(ondisk.builder.catchange.xip); + pfree(ondisk.builder.committed.xip); + pfree(ondisk.builder.catchange.xip); return false; } diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 5f8c541763..7468938960 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -3464,9 +3464,7 @@ stream_write_change(char action, StringInfo s) static inline void cleanup_subxact_info() { - if (subxact_data.subxacts) - pfree(subxact_data.subxacts); - + pfree(subxact_data.subxacts); subxact_data.subxacts = NULL; subxact_data.subxact_last = InvalidTransactionId; subxact_data.nsubxacts = 0; diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c index 8604fd4bc2..5e8979f9dd 100644 --- a/src/backend/replication/walreceiver.c +++ b/src/backend/replication/walreceiver.c @@ -311,11 +311,8 @@ WalReceiverMain(void) walrcv->ready_to_display = true; SpinLockRelease(&walrcv->mutex); - if (tmp_conninfo) - pfree(tmp_conninfo); - - if (sender_host) - pfree(sender_host); + pfree(tmp_conninfo); + pfree(sender_host); first_stream = true; for (;;) diff --git a/src/backend/storage/buffer/freelist.c b/src/backend/storage/buffer/freelist.c index 990e081aae..417faa6440 100644 --- a/src/backend/storage/buffer/freelist.c +++ b/src/backend/storage/buffer/freelist.c @@ -595,9 +595,7 @@ GetAccessStrategy(BufferAccessStrategyType btype) void FreeAccessStrategy(BufferAccessStrategy strategy) { - /* don't crash if called on a "default" strategy */ - if (strategy != NULL) - pfree(strategy); + pfree(strategy); } /* diff --git a/src/backend/storage/ipc/shm_mq.c b/src/backend/storage/ipc/shm_mq.c index 8ca24de8d6..e77d8db710 100644 --- a/src/backend/storage/ipc/shm_mq.c +++ b/src/backend/storage/ipc/shm_mq.c @@ -860,8 +860,7 @@ shm_mq_detach(shm_mq_handle *mqh) PointerGetDatum(mqh->mqh_queue)); /* Release local memory associated with handle. */ - if (mqh->mqh_buffer != NULL) - pfree(mqh->mqh_buffer); + pfree(mqh->mqh_buffer); pfree(mqh); } diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index 5f5803f681..12a375fac9 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -1374,8 +1374,7 @@ RemoveLocalLock(LOCALLOCK *locallock) ResourceOwnerForgetLock(locallock->lockOwners[i].owner, locallock); } locallock->numLockOwners = 0; - if (locallock->lockOwners != NULL) - pfree(locallock->lockOwners); + pfree(locallock->lockOwners); locallock->lockOwners = NULL; if (locallock->holdsStrongLockCount) diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 7bec4e4ff5..553d471c62 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -2527,8 +2527,7 @@ bind_param_error_callback(void *arg) data->paramno + 1); } - if (quotedval) - pfree(quotedval); + pfree(quotedval); } /* diff --git a/src/backend/tsearch/dict_thesaurus.c b/src/backend/tsearch/dict_thesaurus.c index b8c08bcf7b..ad838608ba 100644 --- a/src/backend/tsearch/dict_thesaurus.c +++ b/src/backend/tsearch/dict_thesaurus.c @@ -456,8 +456,7 @@ compileTheLexeme(DictThesaurus *d) pfree(d->wrds[i].entries); } - if (d->wrds) - pfree(d->wrds); + pfree(d->wrds); d->wrds = newwrds; d->nwrds = nnw; d->ntwrds = tnm; @@ -481,8 +480,7 @@ compileTheLexeme(DictThesaurus *d) else pfree(ptrwrds->entries); - if (ptrwrds->lexeme) - pfree(ptrwrds->lexeme); + pfree(ptrwrds->lexeme); } else { @@ -575,8 +573,7 @@ compileTheSubstitute(DictThesaurus *d) inptr->lexeme, i + 1))); } - if (inptr->lexeme) - pfree(inptr->lexeme); + pfree(inptr->lexeme); inptr++; } diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c index f07321b61d..372e3c0fe0 100644 --- a/src/backend/tsearch/spell.c +++ b/src/backend/tsearch/spell.c @@ -1322,8 +1322,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) fields_read = parse_ooaffentry(recoded, type, sflag, find, repl, mask); - if (ptype) - pfree(ptype); + pfree(ptype); ptype = lowerstr_ctx(Conf, type); /* First try to parse AF parameter (alias compression) */ @@ -1427,8 +1426,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) } tsearch_readline_end(&trst); - if (ptype) - pfree(ptype); + pfree(ptype); } /* diff --git a/src/backend/tsearch/to_tsany.c b/src/backend/tsearch/to_tsany.c index edeffacc2d..6a1f4f4b40 100644 --- a/src/backend/tsearch/to_tsany.c +++ b/src/backend/tsearch/to_tsany.c @@ -234,8 +234,7 @@ make_tsvector(ParsedText *prs) ptr++; } - if (prs->words) - pfree(prs->words); + pfree(prs->words); return in; } diff --git a/src/backend/tsearch/wparser_def.c b/src/backend/tsearch/wparser_def.c index 826027844e..b6724ae7b3 100644 --- a/src/backend/tsearch/wparser_def.c +++ b/src/backend/tsearch/wparser_def.c @@ -378,10 +378,8 @@ TParserClose(TParser *prs) prs->state = ptr; } - if (prs->wstr) - pfree(prs->wstr); - if (prs->pgwstr) - pfree(prs->pgwstr); + pfree(prs->wstr); + pfree(prs->pgwstr); #ifdef WPARSER_TRACE fprintf(stderr, "closing parser\n"); diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c index 89060ef29a..37b2ce36ad 100644 --- a/src/backend/utils/activity/pgstat_shmem.c +++ b/src/backend/utils/activity/pgstat_shmem.c @@ -563,8 +563,7 @@ pgstat_release_entry_ref(PgStat_HashKey key, PgStat_EntryRef *entry_ref, if (!pgstat_entry_ref_hash_delete(pgStatEntryRefHash, key)) elog(ERROR, "entry ref vanished before deletion"); - if (entry_ref) - pfree(entry_ref); + pfree(entry_ref); } bool diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c index 5318eda9cf..bc26bb8117 100644 --- a/src/backend/utils/adt/jsonb_util.c +++ b/src/backend/utils/adt/jsonb_util.c @@ -1281,10 +1281,8 @@ JsonbDeepContains(JsonbIterator **val, JsonbIterator **mContained) contains = JsonbDeepContains(&nestval, &nestContained); - if (nestval) - pfree(nestval); - if (nestContained) - pfree(nestContained); + pfree(nestval); + pfree(nestContained); if (contains) break; } diff --git a/src/backend/utils/adt/jsonpath_scan.l b/src/backend/utils/adt/jsonpath_scan.l index 4351f6ec98..2ed8bb0bc0 100644 --- a/src/backend/utils/adt/jsonpath_scan.l +++ b/src/backend/utils/adt/jsonpath_scan.l @@ -614,6 +614,5 @@ jsonpath_yyrealloc(void *ptr, yy_size_t bytes) void jsonpath_yyfree(void *ptr) { - if (ptr) - pfree(ptr); + pfree(ptr); } diff --git a/src/backend/utils/adt/like_support.c b/src/backend/utils/adt/like_support.c index 65a57fc3c4..a16c2f76a7 100644 --- a/src/backend/utils/adt/like_support.c +++ b/src/backend/utils/adt/like_support.c @@ -1687,8 +1687,7 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc, Oid collation) workstr_const->constvalue))) { /* Successfully made a string larger than cmpstr */ - if (cmptxt) - pfree(cmptxt); + pfree(cmptxt); pfree(workstr); return workstr_const; } @@ -1707,8 +1706,7 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc, Oid collation) } /* Failed... */ - if (cmptxt) - pfree(cmptxt); + pfree(cmptxt); pfree(workstr); return NULL; diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c index 920a63b008..2ffafcc1f5 100644 --- a/src/backend/utils/adt/numeric.c +++ b/src/backend/utils/adt/numeric.c @@ -477,10 +477,7 @@ static void dump_var(const char *str, NumericVar *var); #define digitbuf_alloc(ndigits) \ ((NumericDigit *) palloc((ndigits) * sizeof(NumericDigit))) #define digitbuf_free(buf) \ - do { \ - if ((buf) != NULL) \ - pfree(buf); \ - } while (0) + pfree(buf) #define init_var(v) memset(v, 0, sizeof(NumericVar)) diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 1a047a97d7..b5f141d349 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -722,8 +722,7 @@ cache_single_string(char **dst, const char *src, int encoding) /* Store the string in long-lived storage, replacing any previous value */ olddst = *dst; *dst = MemoryContextStrdup(TopMemoryContext, ptr); - if (olddst) - pfree(olddst); + pfree(olddst); /* Might as well clean up any palloc'd conversion result, too */ if (ptr != src) diff --git a/src/backend/utils/adt/tsvector_op.c b/src/backend/utils/adt/tsvector_op.c index 1786c18f89..41f4156373 100644 --- a/src/backend/utils/adt/tsvector_op.c +++ b/src/backend/utils/adt/tsvector_op.c @@ -1377,8 +1377,7 @@ checkcondition_str(void *checkval, QueryOperand *val, ExecPhraseData *data) /* forget any previous positions */ npos = 0; /* don't leak storage */ - if (allpos) - pfree(allpos); + pfree(allpos); break; } diff --git a/src/backend/utils/adt/tsvector_parser.c b/src/backend/utils/adt/tsvector_parser.c index e2460d393a..4215549e3a 100644 --- a/src/backend/utils/adt/tsvector_parser.c +++ b/src/backend/utils/adt/tsvector_parser.c @@ -99,7 +99,7 @@ do { \ *pos_ptr = pos; \ *poslen = npos; \ } \ - else if (pos != NULL) \ + else \ pfree(pos); \ \ if (strval != NULL) \ diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 8539cef024..13f343cec9 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -2621,8 +2621,7 @@ varstr_abbrev_convert(Datum original, SortSupport ssup) memcpy(pres, sss->buf2, Min(sizeof(Datum), bsize)); #ifdef USE_ICU - if (uchar) - pfree(uchar); + pfree(uchar); #endif } @@ -5919,10 +5918,8 @@ text_format(PG_FUNCTION_ARGS) } /* Don't need deconstruct_array results anymore. */ - if (elements != NULL) - pfree(elements); - if (nulls != NULL) - pfree(nulls); + pfree(elements); + pfree(nulls); /* Generate results. */ result = cstring_to_text_with_len(str.data, str.len); diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 60a85c4697..82da805250 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -1677,9 +1677,7 @@ xml_repalloc(void *ptr, size_t size) static void xml_pfree(void *ptr) { - /* At least some parts of libxml assume xmlFree(NULL) is allowed */ - if (ptr) - pfree(ptr); + pfree(ptr); } diff --git a/src/backend/utils/cache/attoptcache.c b/src/backend/utils/cache/attoptcache.c index 9e252a0891..3e34baf168 100644 --- a/src/backend/utils/cache/attoptcache.c +++ b/src/backend/utils/cache/attoptcache.c @@ -59,8 +59,7 @@ InvalidateAttoptCacheCallback(Datum arg, int cacheid, uint32 hashvalue) hash_seq_init(&status, AttoptCacheHash); while ((attopt = (AttoptCacheEntry *) hash_seq_search(&status)) != NULL) { - if (attopt->opts) - pfree(attopt->opts); + pfree(attopt->opts); if (hash_search(AttoptCacheHash, (void *) &attopt->key, HASH_REMOVE, diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c index a16a63f495..75233060ff 100644 --- a/src/backend/utils/cache/lsyscache.c +++ b/src/backend/utils/cache/lsyscache.c @@ -3305,14 +3305,11 @@ void free_attstatsslot(AttStatsSlot *sslot) { /* The values[] array was separately palloc'd by deconstruct_array */ - if (sslot->values) - pfree(sslot->values); + pfree(sslot->values); /* The numbers[] array points into numbers_arr, do not pfree it */ /* Free the detoasted array objects, if any */ - if (sslot->values_arr) - pfree(sslot->values_arr); - if (sslot->numbers_arr) - pfree(sslot->numbers_arr); + pfree(sslot->values_arr); + pfree(sslot->numbers_arr); } /* ---------- PG_NAMESPACE CACHE ---------- */ diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 00dc0f2403..1a5e746747 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -2230,8 +2230,7 @@ RelationReloadIndexInfo(Relation relation) RelationCloseSmgr(relation); /* Must free any AM cached data upon relcache flush */ - if (relation->rd_amcache) - pfree(relation->rd_amcache); + pfree(relation->rd_amcache); relation->rd_amcache = NULL; /* @@ -2261,8 +2260,7 @@ RelationReloadIndexInfo(Relation relation) relp = (Form_pg_class) GETSTRUCT(pg_class_tuple); memcpy(relation->rd_rel, relp, CLASS_TUPLE_SIZE); /* Reload reloptions in case they changed */ - if (relation->rd_options) - pfree(relation->rd_options); + pfree(relation->rd_options); RelationParseRelOptions(relation, pg_class_tuple); /* done with pg_class tuple */ heap_freetuple(pg_class_tuple); @@ -2417,8 +2415,7 @@ RelationDestroyRelation(Relation relation, bool remember_tupdesc) * Free all the subsidiary data structures of the relcache entry, then the * entry itself. */ - if (relation->rd_rel) - pfree(relation->rd_rel); + pfree(relation->rd_rel); /* can't use DecrTupleDescRefCount here */ Assert(relation->rd_att->tdrefcount > 0); if (--relation->rd_att->tdrefcount == 0) @@ -2444,16 +2441,11 @@ RelationDestroyRelation(Relation relation, bool remember_tupdesc) bms_free(relation->rd_keyattr); bms_free(relation->rd_pkattr); bms_free(relation->rd_idattr); - if (relation->rd_pubdesc) - pfree(relation->rd_pubdesc); - if (relation->rd_options) - pfree(relation->rd_options); - if (relation->rd_indextuple) - pfree(relation->rd_indextuple); - if (relation->rd_amcache) - pfree(relation->rd_amcache); - if (relation->rd_fdwroutine) - pfree(relation->rd_fdwroutine); + pfree(relation->rd_pubdesc); + pfree(relation->rd_options); + pfree(relation->rd_indextuple); + pfree(relation->rd_amcache); + pfree(relation->rd_fdwroutine); if (relation->rd_indexcxt) MemoryContextDelete(relation->rd_indexcxt); if (relation->rd_rulescxt) @@ -2513,8 +2505,7 @@ RelationClearRelation(Relation relation, bool rebuild) RelationCloseSmgr(relation); /* Free AM cached data, if any */ - if (relation->rd_amcache) - pfree(relation->rd_amcache); + pfree(relation->rd_amcache); relation->rd_amcache = NULL; /* @@ -4202,8 +4193,7 @@ RelationCacheInitializePhase3(void) memcpy((char *) relation->rd_rel, (char *) relp, CLASS_TUPLE_SIZE); /* Update rd_options while we have the tuple */ - if (relation->rd_options) - pfree(relation->rd_options); + pfree(relation->rd_options); RelationParseRelOptions(relation, htup); /* @@ -5742,11 +5732,8 @@ RelationBuildPublicationDesc(Relation relation, PublicationDesc *pubdesc) break; } - if (relation->rd_pubdesc) - { - pfree(relation->rd_pubdesc); - relation->rd_pubdesc = NULL; - } + pfree(relation->rd_pubdesc); + relation->rd_pubdesc = NULL; /* Now save copy of the descriptor in the relcache entry. */ oldcxt = MemoryContextSwitchTo(CacheMemoryContext); @@ -5829,8 +5816,7 @@ RelationGetIndexAttOptions(Relation relation, bool copy) opts[i] = index_opclass_options(relation, i + 1, attoptions, false); - if (attoptions != (Datum) 0) - pfree(DatumGetPointer(attoptions)); + pfree(DatumGetPointer(attoptions)); } } @@ -5843,10 +5829,7 @@ RelationGetIndexAttOptions(Relation relation, bool copy) return opts; for (i = 0; i < natts; i++) - { - if (opts[i]) - pfree(opts[i]); - } + pfree(opts[i]); pfree(opts); diff --git a/src/backend/utils/cache/spccache.c b/src/backend/utils/cache/spccache.c index 5609246c2f..db4e997a96 100644 --- a/src/backend/utils/cache/spccache.c +++ b/src/backend/utils/cache/spccache.c @@ -59,8 +59,7 @@ InvalidateTableSpaceCacheCallback(Datum arg, int cacheid, uint32 hashvalue) hash_seq_init(&status, TableSpaceCacheHash); while ((spc = (TableSpaceCacheEntry *) hash_seq_search(&status)) != NULL) { - if (spc->opts) - pfree(spc->opts); + pfree(spc->opts); if (hash_search(TableSpaceCacheHash, (void *) &spc->oid, HASH_REMOVE, diff --git a/src/backend/utils/cache/ts_cache.c b/src/backend/utils/cache/ts_cache.c index 24808dfbb1..1fe52a8359 100644 --- a/src/backend/utils/cache/ts_cache.c +++ b/src/backend/utils/cache/ts_cache.c @@ -449,8 +449,7 @@ lookup_ts_config_cache(Oid cfgId) if (entry->map) { for (i = 0; i < entry->lenmap; i++) - if (entry->map[i].dictIds) - pfree(entry->map[i].dictIds); + pfree(entry->map[i].dictIds); pfree(entry->map); } } diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c index 808f9ebd0d..20423bab72 100644 --- a/src/backend/utils/cache/typcache.c +++ b/src/backend/utils/cache/typcache.c @@ -2690,8 +2690,7 @@ load_enum_cache_data(TypeCacheEntry *tcache) bms_free(bitmap); /* And link the finished cache struct into the typcache */ - if (tcache->enumData != NULL) - pfree(tcache->enumData); + pfree(tcache->enumData); tcache->enumData = enumdata; } diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 95f32de4e2..572b6923e8 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -592,30 +592,18 @@ errfinish(const char *filename, int lineno, const char *funcname) EmitErrorReport(); /* Now free up subsidiary data attached to stack entry, and release it */ - if (edata->message) - pfree(edata->message); - if (edata->detail) - pfree(edata->detail); - if (edata->detail_log) - pfree(edata->detail_log); - if (edata->hint) - pfree(edata->hint); - if (edata->context) - pfree(edata->context); - if (edata->backtrace) - pfree(edata->backtrace); - if (edata->schema_name) - pfree(edata->schema_name); - if (edata->table_name) - pfree(edata->table_name); - if (edata->column_name) - pfree(edata->column_name); - if (edata->datatype_name) - pfree(edata->datatype_name); - if (edata->constraint_name) - pfree(edata->constraint_name); - if (edata->internalquery) - pfree(edata->internalquery); + pfree(edata->message); + pfree(edata->detail); + pfree(edata->detail_log); + pfree(edata->hint); + pfree(edata->context); + pfree(edata->backtrace); + pfree(edata->schema_name); + pfree(edata->table_name); + pfree(edata->column_name); + pfree(edata->datatype_name); + pfree(edata->constraint_name); + pfree(edata->internalquery); errordata_stack_depth--; @@ -845,8 +833,7 @@ errcode_for_socket_access(void) enlargeStringInfo(&buf, needed); \ } \ /* Save the completed message into the stack item */ \ - if (edata->targetfield) \ - pfree(edata->targetfield); \ + pfree(edata->targetfield); \ edata->targetfield = pstrdup(buf.data); \ pfree(buf.data); \ } @@ -884,8 +871,7 @@ errcode_for_socket_access(void) enlargeStringInfo(&buf, needed); \ } \ /* Save the completed message into the stack item */ \ - if (edata->targetfield) \ - pfree(edata->targetfield); \ + pfree(edata->targetfield); \ edata->targetfield = pstrdup(buf.data); \ pfree(buf.data); \ } @@ -1320,11 +1306,8 @@ internalerrquery(const char *query) /* we don't bother incrementing recursion_depth */ CHECK_STACK_DEPTH(); - if (edata->internalquery) - { - pfree(edata->internalquery); - edata->internalquery = NULL; - } + pfree(edata->internalquery); + edata->internalquery = NULL; if (query) edata->internalquery = MemoryContextStrdup(edata->assoc_context, query); @@ -1610,30 +1593,18 @@ CopyErrorData(void) void FreeErrorData(ErrorData *edata) { - if (edata->message) - pfree(edata->message); - if (edata->detail) - pfree(edata->detail); - if (edata->detail_log) - pfree(edata->detail_log); - if (edata->hint) - pfree(edata->hint); - if (edata->context) - pfree(edata->context); - if (edata->backtrace) - pfree(edata->backtrace); - if (edata->schema_name) - pfree(edata->schema_name); - if (edata->table_name) - pfree(edata->table_name); - if (edata->column_name) - pfree(edata->column_name); - if (edata->datatype_name) - pfree(edata->datatype_name); - if (edata->constraint_name) - pfree(edata->constraint_name); - if (edata->internalquery) - pfree(edata->internalquery); + pfree(edata->message); + pfree(edata->detail); + pfree(edata->detail_log); + pfree(edata->hint); + pfree(edata->context); + pfree(edata->backtrace); + pfree(edata->schema_name); + pfree(edata->table_name); + pfree(edata->column_name); + pfree(edata->datatype_name); + pfree(edata->constraint_name); + pfree(edata->internalquery); pfree(edata); } diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index bd973ba613..3a6e2b3028 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -1667,8 +1667,7 @@ load_libraries(const char *libraries, const char *gucname, bool restricted) load_file(filename, restricted); ereport(DEBUG1, (errmsg_internal("loaded library \"%s\"", filename))); - if (expanded) - pfree(expanded); + pfree(expanded); } list_free_deep(elemlist); diff --git a/src/backend/utils/mb/stringinfo_mb.c b/src/backend/utils/mb/stringinfo_mb.c index 4401dfc47a..25e872fa99 100644 --- a/src/backend/utils/mb/stringinfo_mb.c +++ b/src/backend/utils/mb/stringinfo_mb.c @@ -81,6 +81,5 @@ appendStringInfoStringQuoted(StringInfo str, const char *s, int maxlen) else appendStringInfo(str, "%s'", chunk_copy_start); - if (copy) - pfree(copy); + pfree(copy); } diff --git a/src/backend/utils/misc/guc-file.l b/src/backend/utils/misc/guc-file.l index ce5633844c..6d0e7b4dc5 100644 --- a/src/backend/utils/misc/guc-file.l +++ b/src/backend/utils/misc/guc-file.l @@ -478,8 +478,7 @@ ProcessConfigFileInternal(GucContext context, bool applySettings, int elevel) set_config_sourcefile(item->name, item->filename, item->sourceline); - if (pre_value) - pfree(pre_value); + pfree(pre_value); } /* Remember when we last successfully loaded the config file. */ @@ -883,10 +882,8 @@ ParseConfigFp(FILE *fp, const char *config_file, int depth, int elevel, parse_error: /* release storage if we allocated any on this line */ - if (opt_name) - pfree(opt_name); - if (opt_value) - pfree(opt_value); + pfree(opt_name); + pfree(opt_value); /* report the error */ if (token == GUC_EOL || token == 0) @@ -1119,14 +1116,10 @@ FreeConfigVariables(ConfigVariable *list) static void FreeConfigVariable(ConfigVariable *item) { - if (item->name) - pfree(item->name); - if (item->value) - pfree(item->value); - if (item->errmsg) - pfree(item->errmsg); - if (item->filename) - pfree(item->filename); + pfree(item->name); + pfree(item->value); + pfree(item->errmsg); + pfree(item->filename); pfree(item); } diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 9fbbfb1be5..ada7bc6b90 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -7513,8 +7513,7 @@ parse_and_validate_value(struct config_generic *record, name, value), hintmsg ? errhint("%s", _(hintmsg)) : 0)); - if (hintmsg) - pfree(hintmsg); + pfree(hintmsg); return false; } diff --git a/src/backend/utils/resowner/resowner.c b/src/backend/utils/resowner/resowner.c index ceb4b0e3f7..1dbf41396b 100644 --- a/src/backend/utils/resowner/resowner.c +++ b/src/backend/utils/resowner/resowner.c @@ -407,8 +407,7 @@ ResourceArrayGetAny(ResourceArray *resarr, Datum *value) static void ResourceArrayFree(ResourceArray *resarr) { - if (resarr->itemsarr) - pfree(resarr->itemsarr); + pfree(resarr->itemsarr); } diff --git a/src/backend/utils/sort/logtape.c b/src/backend/utils/sort/logtape.c index c384f98e13..67cc6fd204 100644 --- a/src/backend/utils/sort/logtape.c +++ b/src/backend/utils/sort/logtape.c @@ -733,8 +733,7 @@ ltsCreateTape(LogicalTapeSet *lts) void LogicalTapeClose(LogicalTape *lt) { - if (lt->buffer) - pfree(lt->buffer); + pfree(lt->buffer); pfree(lt); } @@ -901,8 +900,7 @@ LogicalTapeRewindForRead(LogicalTape *lt, size_t buffer_size) Assert(lt->frozen); } - if (lt->buffer) - pfree(lt->buffer); + pfree(lt->buffer); /* the buffer is lazily allocated, but set the size here */ lt->buffer = NULL; @@ -1018,8 +1016,7 @@ LogicalTapeFreeze(LogicalTape *lt, TapeShare *share) */ if (!lt->buffer || lt->buffer_size != BLCKSZ) { - if (lt->buffer) - pfree(lt->buffer); + pfree(lt->buffer); lt->buffer = palloc(BLCKSZ); lt->buffer_size = BLCKSZ; } diff --git a/src/backend/utils/sort/sharedtuplestore.c b/src/backend/utils/sort/sharedtuplestore.c index 996cef07d4..daba9fdf95 100644 --- a/src/backend/utils/sort/sharedtuplestore.c +++ b/src/backend/utils/sort/sharedtuplestore.c @@ -444,8 +444,7 @@ sts_read_tuple(SharedTuplestoreAccessor *accessor, void *meta_data) { size_t new_read_buffer_size; - if (accessor->read_buffer != NULL) - pfree(accessor->read_buffer); + pfree(accessor->read_buffer); new_read_buffer_size = Max(size, accessor->read_buffer_size * 2); accessor->read_buffer = MemoryContextAlloc(accessor->context, new_read_buffer_size); diff --git a/src/bin/pg_verifybackup/parse_manifest.c b/src/bin/pg_verifybackup/parse_manifest.c index 6364b01282..d682babba3 100644 --- a/src/bin/pg_verifybackup/parse_manifest.c +++ b/src/bin/pg_verifybackup/parse_manifest.c @@ -535,21 +535,12 @@ json_manifest_finalize_file(JsonManifestParseState *parse) checksum_type, checksum_length, checksum_payload); /* Free memory we no longer need. */ - if (parse->size != NULL) - { - pfree(parse->size); - parse->size = NULL; - } - if (parse->algorithm != NULL) - { - pfree(parse->algorithm); - parse->algorithm = NULL; - } - if (parse->checksum != NULL) - { - pfree(parse->checksum); - parse->checksum = NULL; - } + pfree(parse->size); + parse->size = NULL; + pfree(parse->algorithm); + parse->algorithm = NULL; + pfree(parse->checksum); + parse->checksum = NULL; } /* @@ -591,21 +582,12 @@ json_manifest_finalize_wal_range(JsonManifestParseState *parse) context->perwalrange_cb(context, tli, start_lsn, end_lsn); /* Free memory we no longer need. */ - if (parse->timeline != NULL) - { - pfree(parse->timeline); - parse->timeline = NULL; - } - if (parse->start_lsn != NULL) - { - pfree(parse->start_lsn); - parse->start_lsn = NULL; - } - if (parse->end_lsn != NULL) - { - pfree(parse->end_lsn); - parse->end_lsn = NULL; - } + pfree(parse->timeline); + parse->timeline = NULL; + pfree(parse->start_lsn); + parse->start_lsn = NULL; + pfree(parse->end_lsn); + parse->end_lsn = NULL; } /* diff --git a/src/common/compression.c b/src/common/compression.c index da3c291c0f..b63d42844f 100644 --- a/src/common/compression.c +++ b/src/common/compression.c @@ -188,8 +188,7 @@ parse_compress_specification(pg_compress_algorithm algorithm, char *specificatio /* Release memory, just to be tidy. */ pfree(keyword); - if (value != NULL) - pfree(value); + pfree(value); /* * If we got an error or have reached the end of the string, stop. diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h index 9339f29303..4780b2a0a9 100644 --- a/src/include/replication/walreceiver.h +++ b/src/include/replication/walreceiver.h @@ -442,8 +442,7 @@ walrcv_clear_result(WalRcvExecResult *walres) if (!walres) return; - if (walres->err) - pfree(walres->err); + pfree(walres->err); if (walres->tuplestore) tuplestore_end(walres->tuplestore); diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c index af354a68cc..f6fc4303fd 100644 --- a/src/pl/plperl/plperl.c +++ b/src/pl/plperl/plperl.c @@ -4064,8 +4064,7 @@ plperl_util_elog(int level, SV *msg) edata = CopyErrorData(); FlushErrorState(); - if (cmsg) - pfree(cmsg); + pfree(cmsg); /* Punt the error to Perl */ croak_cstr(edata->message); diff --git a/src/pl/plpython/plpy_elog.c b/src/pl/plpython/plpy_elog.c index 7c627eacfb..5058c6a205 100644 --- a/src/pl/plpython/plpy_elog.c +++ b/src/pl/plpython/plpy_elog.c @@ -141,10 +141,8 @@ PLy_elog_impl(int elevel, const char *fmt,...) { if (fmt) pfree(emsg.data); - if (xmsg) - pfree(xmsg); - if (tbmsg) - pfree(tbmsg); + pfree(xmsg); + pfree(tbmsg); Py_XDECREF(exc); Py_XDECREF(val); } diff --git a/src/pl/plpython/plpy_exec.c b/src/pl/plpython/plpy_exec.c index 150b3a5977..1a7c4b6a72 100644 --- a/src/pl/plpython/plpy_exec.c +++ b/src/pl/plpython/plpy_exec.c @@ -981,12 +981,9 @@ PLy_modify_tuple(PLyProcedure *proc, PyObject *pltd, TriggerData *tdata, Py_XDECREF(plkeys); Py_XDECREF(plval); - if (modvalues) - pfree(modvalues); - if (modnulls) - pfree(modnulls); - if (modrepls) - pfree(modrepls); + pfree(modvalues); + pfree(modnulls); + pfree(modrepls); PG_RE_THROW(); } diff --git a/src/pl/plpython/plpy_plpymodule.c b/src/pl/plpython/plpy_plpymodule.c index fa08f0dbfb..91ab319700 100644 --- a/src/pl/plpython/plpy_plpymodule.c +++ b/src/pl/plpython/plpy_plpymodule.c @@ -452,8 +452,7 @@ PLy_output(volatile int level, PyObject *self, PyObject *args, PyObject *kw) return NULL; } - if (message) - pfree(message); + pfree(message); message = object_to_string(value); } else if (strcmp(keyword, "detail") == 0) diff --git a/src/pl/plpython/plpy_typeio.c b/src/pl/plpython/plpy_typeio.c index 7018c9d404..9f9f5eec84 100644 --- a/src/pl/plpython/plpy_typeio.c +++ b/src/pl/plpython/plpy_typeio.c @@ -175,8 +175,7 @@ PLy_input_setup_tuple(PLyDatumToOb *arg, TupleDesc desc, PLyProcedure *proc) /* (Re)allocate atts array as needed */ if (arg->u.tuple.natts != desc->natts) { - if (arg->u.tuple.atts) - pfree(arg->u.tuple.atts); + pfree(arg->u.tuple.atts); arg->u.tuple.natts = desc->natts; arg->u.tuple.atts = (PLyDatumToOb *) MemoryContextAllocZero(arg->mcxt, @@ -225,8 +224,7 @@ PLy_output_setup_tuple(PLyObToDatum *arg, TupleDesc desc, PLyProcedure *proc) /* (Re)allocate atts array as needed */ if (arg->u.tuple.natts != desc->natts) { - if (arg->u.tuple.atts) - pfree(arg->u.tuple.atts); + pfree(arg->u.tuple.atts); arg->u.tuple.natts = desc->natts; arg->u.tuple.atts = (PLyObToDatum *) MemoryContextAllocZero(arg->mcxt, diff --git a/src/test/modules/test_oat_hooks/test_oat_hooks.c b/src/test/modules/test_oat_hooks/test_oat_hooks.c index 4b4e259cd2..65f21b1209 100644 --- a/src/test/modules/test_oat_hooks/test_oat_hooks.c +++ b/src/test/modules/test_oat_hooks/test_oat_hooks.c @@ -249,10 +249,8 @@ emit_audit_message(const char *type, const char *hook, char *action, char *objNa errmsg("in %s: %s %s %s", hook, who, type, action))); } - if (action) - pfree(action); - if (objName) - pfree(objName); + pfree(action); + pfree(objName); } static void -- 2.37.1