diff options
| author | Michael Paquier <michael@paquier.xyz> | 2025-12-05 16:40:26 +0900 |
|---|---|---|
| committer | Michael Paquier <michael@paquier.xyz> | 2025-12-05 16:40:26 +0900 |
| commit | 31d3847a37bec060fb4177b2fc6c0fdfc7a08011 (patch) | |
| tree | c93bc37750ca509c99f123dc88f320d98bec15ba /contrib/btree_gist | |
| parent | 2f04110225ab30fbd9889d6f5d73fd6b3e1b308b (diff) | |
Use more palloc_object() and palloc_array() in contrib/
The idea is to encourage more the use of these new routines across the
tree, as these offer stronger type safety guarantees than palloc(). In
an ideal world, palloc() would then act as an internal routine of these
flavors, whose footprint in the tree is minimal.
The patch sent by the author is very large, and this chunk of changes
represents something like 10% of the overall patch submitted.
The code compiled is the same before and after this commit, using
objdump to do some validation with a difference taken in-between. There
are some diffs, which are caused by changes in line numbers because some
of the new allocation formulas are shorter, for the following files:
trgm_regexp.c, xpath.c and pg_walinspect.c.
Author: David Geier <geidav.pg@gmail.com>
Discussion: https://postgr.es/m/ad0748d4-3080-436e-b0bc-ac8f86a3466a@gmail.com
Diffstat (limited to 'contrib/btree_gist')
| -rw-r--r-- | contrib/btree_gist/btree_inet.c | 4 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_interval.c | 6 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_time.c | 4 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_ts.c | 8 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_utils_num.c | 4 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_utils_var.c | 6 | ||||
| -rw-r--r-- | contrib/btree_gist/btree_uuid.c | 2 |
7 files changed, 17 insertions, 17 deletions
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); |
