aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/cache/typcache.c
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2022-11-12 20:31:27 +0100
committerPeter Eisentraut <peter@eisentraut.org>2022-11-12 20:34:44 +0100
commitb4b7ce8061d34cea2b4915c41403b2a74d5fde0e (patch)
tree127e3012c81c377513fc234f0b8af27f16cf0c31 /src/backend/utils/cache/typcache.c
parent30d98e14a88930c6d9658525fd5e6722e70a02e6 (diff)
downloadpostgresql-b4b7ce8061d34cea2b4915c41403b2a74d5fde0e.tar.gz
postgresql-b4b7ce8061d34cea2b4915c41403b2a74d5fde0e.zip
Add repalloc0 and repalloc0_array
These zero out the space added by repalloc. This is a common pattern that is quite hairy to code by hand. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/b66dfc89-9365-cb57-4e1f-b7d31813eeec@enterprisedb.com
Diffstat (limited to 'src/backend/utils/cache/typcache.c')
-rw-r--r--src/backend/utils/cache/typcache.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/backend/utils/cache/typcache.c b/src/backend/utils/cache/typcache.c
index 808f9ebd0d2..b69366fa29d 100644
--- a/src/backend/utils/cache/typcache.c
+++ b/src/backend/utils/cache/typcache.c
@@ -1714,14 +1714,8 @@ ensure_record_cache_typmod_slot_exists(int32 typmod)
{
int32 newlen = pg_nextpower2_32(typmod + 1);
- RecordCacheArray = (TupleDesc *) repalloc(RecordCacheArray,
- newlen * sizeof(TupleDesc));
- memset(RecordCacheArray + RecordCacheArrayLen, 0,
- (newlen - RecordCacheArrayLen) * sizeof(TupleDesc));
- RecordIdentifierArray = (uint64 *) repalloc(RecordIdentifierArray,
- newlen * sizeof(uint64));
- memset(RecordIdentifierArray + RecordCacheArrayLen, 0,
- (newlen - RecordCacheArrayLen) * sizeof(uint64));
+ RecordCacheArray = repalloc0_array(RecordCacheArray, TupleDesc, RecordCacheArrayLen, newlen);
+ RecordIdentifierArray = repalloc0_array(RecordIdentifierArray, uint64, RecordCacheArrayLen, newlen);
RecordCacheArrayLen = newlen;
}
}