diff options
| author | Tom Lane | 2000-07-12 02:37:39 +0000 |
|---|---|---|
| committer | Tom Lane | 2000-07-12 02:37:39 +0000 |
| commit | badce86a2c327b40c6146242526d1523455d64a6 (patch) | |
| tree | 6e0cb658889a2688e76d9ac19a56555c5eb0e738 /src/backend/utils/mmgr | |
| parent | 46fb9c29e2990ba470bb741ff6dd60f2ae218e64 (diff) | |
First stage of reclaiming memory in executor by resetting short-term
memory contexts. Currently, only leaks in expressions executed as
quals or projections are handled. Clean up some old dead cruft in
executor while at it --- unused fields in state nodes, that sort of thing.
Diffstat (limited to 'src/backend/utils/mmgr')
| -rw-r--r-- | src/backend/utils/mmgr/aset.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/backend/utils/mmgr/aset.c b/src/backend/utils/mmgr/aset.c index bf212ff7bb5..6c6f58b0222 100644 --- a/src/backend/utils/mmgr/aset.c +++ b/src/backend/utils/mmgr/aset.c @@ -11,7 +11,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.29 2000/07/11 14:30:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/aset.c,v 1.30 2000/07/12 02:37:23 tgl Exp $ * * NOTE: * This is a new (Feb. 05, 1999) implementation of the allocation set @@ -349,20 +349,21 @@ AllocSetReset(MemoryContext context) if (block == set->keeper) { /* Reset the block, but don't return it to malloc */ - block->next = NULL; - block->freeptr = ((char *) block) + ALLOC_BLOCKHDRSZ; + char *datastart = ((char *) block) + ALLOC_BLOCKHDRSZ; + #ifdef CLOBBER_FREED_MEMORY /* Wipe freed memory for debugging purposes */ - memset(block->freeptr, 0x7F, - ((char *) block->endptr) - ((char *) block->freeptr)); + memset(datastart, 0x7F, ((char *) block->freeptr) - datastart); #endif + block->freeptr = datastart; + block->next = NULL; } else { /* Normal case, release the block */ #ifdef CLOBBER_FREED_MEMORY /* Wipe freed memory for debugging purposes */ - memset(block, 0x7F, ((char *) block->endptr) - ((char *) block)); + memset(block, 0x7F, ((char *) block->freeptr) - ((char *) block)); #endif free(block); } |
