diff options
| author | Bruce Momjian | 2002-11-11 03:02:20 +0000 |
|---|---|---|
| committer | Bruce Momjian | 2002-11-11 03:02:20 +0000 |
| commit | 75fee4535d1a9741474b53bd46a3585ad3c66eb5 (patch) | |
| tree | de4500a8b76fdb882f055ad7bd8889be9d51c790 /src/backend/utils | |
| parent | 5d283d89cb6142d721c095c28be19056ad620616 (diff) | |
Back out use of palloc0 in place if palloc/MemSet. Seems constant len
to MemSet is a performance boost.
Diffstat (limited to 'src/backend/utils')
| -rw-r--r-- | src/backend/utils/adt/acl.c | 5 | ||||
| -rw-r--r-- | src/backend/utils/adt/arrayfuncs.c | 19 | ||||
| -rw-r--r-- | src/backend/utils/adt/geo_ops.c | 9 | ||||
| -rw-r--r-- | src/backend/utils/adt/network.c | 14 | ||||
| -rw-r--r-- | src/backend/utils/adt/varbit.c | 11 | ||||
| -rw-r--r-- | src/backend/utils/cache/catcache.c | 5 | ||||
| -rw-r--r-- | src/backend/utils/cache/relcache.c | 17 | ||||
| -rw-r--r-- | src/backend/utils/fmgr/fmgr.c | 5 | ||||
| -rw-r--r-- | src/backend/utils/sort/tuplesort.c | 12 | ||||
| -rw-r--r-- | src/backend/utils/sort/tuplestore.c | 6 |
10 files changed, 68 insertions, 35 deletions
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c index 2275cc8cb24..120df241099 100644 --- a/src/backend/utils/adt/acl.c +++ b/src/backend/utils/adt/acl.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.81 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.82 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -248,7 +248,8 @@ makeacl(int n) if (n < 0) elog(ERROR, "makeacl: invalid size: %d", n); size = ACL_N_SIZE(n); - new_acl = (Acl *) palloc0(size); + new_acl = (Acl *) palloc(size); + MemSet((char *) new_acl, 0, size); new_acl->size = size; new_acl->ndim = 1; new_acl->flags = 0; diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 3340449b1a2..df75d660f56 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.83 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.84 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -235,7 +235,8 @@ array_in(PG_FUNCTION_ARGS) if (nitems == 0) { /* Return empty array */ - retval = (ArrayType *) palloc0(sizeof(ArrayType)); + retval = (ArrayType *) palloc(sizeof(ArrayType)); + MemSet(retval, 0, sizeof(ArrayType)); retval->size = sizeof(ArrayType); retval->elemtype = element_type; PG_RETURN_ARRAYTYPE_P(retval); @@ -248,7 +249,8 @@ array_in(PG_FUNCTION_ARGS) typmod, typdelim, typlen, typbyval, typalign, &nbytes); nbytes += ARR_OVERHEAD(ndim); - retval = (ArrayType *) palloc0(nbytes); + retval = (ArrayType *) palloc(nbytes); + MemSet(retval, 0, nbytes); retval->size = nbytes; retval->ndim = ndim; retval->elemtype = element_type; @@ -395,7 +397,8 @@ ReadArrayStr(char *arrayStr, prod[MAXDIM]; mda_get_prod(ndim, dim, prod); - values = (Datum *) palloc0(nitems * sizeof(Datum)); + values = (Datum *) palloc(nitems * sizeof(Datum)); + MemSet(values, 0, nitems * sizeof(Datum)); MemSet(indx, 0, sizeof(indx)); /* read array enclosed within {} */ @@ -511,7 +514,10 @@ ReadArrayStr(char *arrayStr, if (!typbyval) for (i = 0; i < nitems; i++) if (values[i] == (Datum) 0) - values[i] = PointerGetDatum(palloc0(typlen)); + { + values[i] = PointerGetDatum(palloc(typlen)); + MemSet(DatumGetPointer(values[i]), 0, typlen); + } } else { @@ -1587,7 +1593,8 @@ array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType) /* Allocate and initialize the result array */ nbytes += ARR_OVERHEAD(ndim); - result = (ArrayType *) palloc0(nbytes); + result = (ArrayType *) palloc(nbytes); + MemSet(result, 0, nbytes); result->size = nbytes; result->ndim = ndim; diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c index f39cfab1b11..a0ddd377238 100644 --- a/src/backend/utils/adt/geo_ops.c +++ b/src/backend/utils/adt/geo_ops.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.69 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/geo_ops.c,v 1.70 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -3130,8 +3130,9 @@ poly_in(PG_FUNCTION_ARGS) elog(ERROR, "Bad polygon external representation '%s'", str); size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * npts; - poly = (POLYGON *) palloc0(size); /* zero any holes */ + poly = (POLYGON *) palloc(size); + MemSet((char *) poly, 0, size); /* zero any holes */ poly->size = size; poly->npts = npts; @@ -4451,7 +4452,9 @@ circle_poly(PG_FUNCTION_ARGS) if (base_size / npts != sizeof(poly->p[0]) || size <= base_size) elog(ERROR, "too many points requested"); - poly = (POLYGON *) palloc0(size); /* zero any holes */ + poly = (POLYGON *) palloc(size); + + MemSet(poly, 0, size); /* zero any holes */ poly->size = size; poly->npts = npts; diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c index 429bac59e99..0985c6a459f 100644 --- a/src/backend/utils/adt/network.c +++ b/src/backend/utils/adt/network.c @@ -3,7 +3,7 @@ * is for IP V4 CIDR notation, but prepared for V6: just * add the necessary bits where the comments indicate. * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/network.c,v 1.36 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/network.c,v 1.37 2002/11/11 03:02:19 momjian Exp $ * * Jon Postel RIP 16 Oct 1998 */ @@ -51,8 +51,9 @@ network_in(char *src, int type) int bits; inet *dst; + dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct)); /* make sure any unused bits in a CIDR value are zeroed */ - dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct)); + MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct)); /* First, try for an IP V4 address: */ ip_family(dst) = AF_INET; @@ -493,8 +494,9 @@ network_broadcast(PG_FUNCTION_ARGS) inet *ip = PG_GETARG_INET_P(0); inet *dst; + dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct)); /* make sure any unused bits are zeroed */ - dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct)); + MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct)); if (ip_family(ip) == AF_INET) { @@ -532,8 +534,9 @@ network_network(PG_FUNCTION_ARGS) inet *ip = PG_GETARG_INET_P(0); inet *dst; + dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct)); /* make sure any unused bits are zeroed */ - dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct)); + MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct)); if (ip_family(ip) == AF_INET) { @@ -571,8 +574,9 @@ network_netmask(PG_FUNCTION_ARGS) inet *ip = PG_GETARG_INET_P(0); inet *dst; + dst = (inet *) palloc(VARHDRSZ + sizeof(inet_struct)); /* make sure any unused bits are zeroed */ - dst = (inet *) palloc0(VARHDRSZ + sizeof(inet_struct)); + MemSet(dst, 0, VARHDRSZ + sizeof(inet_struct)); if (ip_family(ip) == AF_INET) { diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c index 7d98491d779..69b8e226be4 100644 --- a/src/backend/utils/adt/varbit.c +++ b/src/backend/utils/adt/varbit.c @@ -9,7 +9,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.27 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.28 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -107,8 +107,9 @@ bit_in(PG_FUNCTION_ARGS) bitlen, atttypmod); len = VARBITTOTALLEN(atttypmod); + result = (VarBit *) palloc(len); /* set to 0 so that *r is always initialised and string is zero-padded */ - result = (VarBit *) palloc0(len); + MemSet(result, 0, len); VARATT_SIZEP(result) = len; VARBITLEN(result) = atttypmod; @@ -231,8 +232,9 @@ bit(PG_FUNCTION_ARGS) VARBITLEN(arg), len); rlen = VARBITTOTALLEN(len); + result = (VarBit *) palloc(rlen); /* set to 0 so that string is zero-padded */ - result = (VarBit *) palloc0(rlen); + MemSet(result, 0, rlen); VARATT_SIZEP(result) = rlen; VARBITLEN(result) = len; @@ -314,8 +316,9 @@ varbit_in(PG_FUNCTION_ARGS) atttypmod); len = VARBITTOTALLEN(bitlen); + result = (VarBit *) palloc(len); /* set to 0 so that *r is always initialised and string is zero-padded */ - result = (VarBit *) palloc0(len); + MemSet(result, 0, len); VARATT_SIZEP(result) = len; VARBITLEN(result) = Min(bitlen, atttypmod); diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 1d10a103bdc..ffae38015b6 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.100 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/catcache.c,v 1.101 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -808,7 +808,8 @@ InitCatCache(int id, * * Note: we assume zeroing initializes the Dllist headers correctly */ - cp = (CatCache *) palloc0(sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist)); + cp = (CatCache *) palloc(sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist)); + MemSet((char *) cp, 0, sizeof(CatCache) + NCCBUCKETS * sizeof(Dllist)); /* * initialize the cache's relation information for the relation diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 28431b5c5cc..11bb211c808 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.178 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.179 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1348,9 +1348,13 @@ formrdesc(const char *relationName, /* * allocate new relation desc + */ + relation = (Relation) palloc(sizeof(RelationData)); + + /* * clear all fields of reldesc */ - relation = (Relation) palloc0(sizeof(RelationData)); + MemSet((char *) relation, 0, sizeof(RelationData)); relation->rd_targblock = InvalidBlockNumber; /* make sure relation is marked as having no open file yet */ @@ -1376,7 +1380,8 @@ formrdesc(const char *relationName, * get us launched. RelationCacheInitializePhase2() will read the * real data from pg_class and replace what we've done here. */ - relation->rd_rel = (Form_pg_class) palloc0(CLASS_TUPLE_SIZE); + relation->rd_rel = (Form_pg_class) palloc(CLASS_TUPLE_SIZE); + MemSet(relation->rd_rel, 0, CLASS_TUPLE_SIZE); namestrcpy(&relation->rd_rel->relname, relationName); relation->rd_rel->relnamespace = PG_CATALOG_NAMESPACE; @@ -2049,7 +2054,8 @@ RelationBuildLocalRelation(const char *relname, /* * allocate a new relation descriptor and fill in basic state fields. */ - rel = (Relation) palloc0(sizeof(RelationData)); + rel = (Relation) palloc(sizeof(RelationData)); + MemSet((char *) rel, 0, sizeof(RelationData)); rel->rd_targblock = InvalidBlockNumber; @@ -2087,7 +2093,8 @@ RelationBuildLocalRelation(const char *relname, /* * initialize relation tuple form (caller may add/override data later) */ - rel->rd_rel = (Form_pg_class) palloc0(CLASS_TUPLE_SIZE); + rel->rd_rel = (Form_pg_class) palloc(CLASS_TUPLE_SIZE); + MemSet((char *) rel->rd_rel, 0, CLASS_TUPLE_SIZE); namestrcpy(&rel->rd_rel->relname, relname); rel->rd_rel->relnamespace = relnamespace; diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index 30c83038609..d27f7491518 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.64 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.65 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1550,8 +1550,9 @@ Int64GetDatum(int64 X) * with zeroes in the unused bits. This is needed so that, for * example, hash join of int8 will behave properly. */ - int64 *retval = (int64 *) palloc0(Max(sizeof(int64), 8)); + int64 *retval = (int64 *) palloc(Max(sizeof(int64), 8)); + MemSet(retval, 0, Max(sizeof(int64), 8)); *retval = X; return PointerGetDatum(retval); #endif /* INT64_IS_BUSTED */ diff --git a/src/backend/utils/sort/tuplesort.c b/src/backend/utils/sort/tuplesort.c index 53b505fa8f0..971a74768ba 100644 --- a/src/backend/utils/sort/tuplesort.c +++ b/src/backend/utils/sort/tuplesort.c @@ -78,7 +78,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.30 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplesort.c,v 1.31 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -414,7 +414,9 @@ tuplesort_begin_common(bool randomAccess) { Tuplesortstate *state; - state = (Tuplesortstate *) palloc0(sizeof(Tuplesortstate)); + state = (Tuplesortstate *) palloc(sizeof(Tuplesortstate)); + + MemSet((char *) state, 0, sizeof(Tuplesortstate)); state->status = TSS_INITIAL; state->randomAccess = randomAccess; @@ -457,9 +459,11 @@ tuplesort_begin_heap(TupleDesc tupDesc, state->tupDesc = tupDesc; state->nKeys = nkeys; - state->scanKeys = (ScanKey) palloc0(nkeys * sizeof(ScanKeyData)); + state->scanKeys = (ScanKey) palloc(nkeys * sizeof(ScanKeyData)); + MemSet(state->scanKeys, 0, nkeys * sizeof(ScanKeyData)); state->sortFnKinds = (SortFunctionKind *) - palloc0(nkeys * sizeof(SortFunctionKind)); + palloc(nkeys * sizeof(SortFunctionKind)); + MemSet(state->sortFnKinds, 0, nkeys * sizeof(SortFunctionKind)); for (i = 0; i < nkeys; i++) { diff --git a/src/backend/utils/sort/tuplestore.c b/src/backend/utils/sort/tuplestore.c index 172ba62202a..80181a68183 100644 --- a/src/backend/utils/sort/tuplestore.c +++ b/src/backend/utils/sort/tuplestore.c @@ -26,7 +26,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplestore.c,v 1.8 2002/11/10 07:25:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/sort/tuplestore.c,v 1.9 2002/11/11 03:02:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -197,7 +197,9 @@ tuplestore_begin_common(bool randomAccess, int maxKBytes) { Tuplestorestate *state; - state = (Tuplestorestate *) palloc0(sizeof(Tuplestorestate)); + state = (Tuplestorestate *) palloc(sizeof(Tuplestorestate)); + + MemSet((char *) state, 0, sizeof(Tuplestorestate)); state->status = TSS_INITIAL; state->randomAccess = randomAccess; |
