diff options
author | Bruce Momjian | 2002-10-11 04:16:44 +0000 |
---|---|---|
committer | Bruce Momjian | 2002-10-11 04:16:44 +0000 |
commit | 2177b6b63540c6ddb7e545735f2cb9775a342a23 (patch) | |
tree | 65b6f7fdcce0e1b10d146d4328428cd8b160bb83 | |
parent | 6a7bb0afbcab1ac3f1e9bbcb536bc7865f4503e6 (diff) |
Oops, back out newNode changes. We are not ready for that yet.
-rw-r--r-- | src/backend/nodes/nodes.c | 14 | ||||
-rw-r--r-- | src/backend/utils/mmgr/mcxt.c | 25 | ||||
-rw-r--r-- | src/include/nodes/nodes.h | 25 | ||||
-rw-r--r-- | src/include/utils/palloc.h | 5 |
4 files changed, 20 insertions, 49 deletions
diff --git a/src/backend/nodes/nodes.c b/src/backend/nodes/nodes.c index 4e694bd09d0..938cfd91a8c 100644 --- a/src/backend/nodes/nodes.c +++ b/src/backend/nodes/nodes.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/nodes.c,v 1.16 2002/10/11 04:12:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/nodes.c,v 1.17 2002/10/11 04:16:44 momjian Exp $ * * HISTORY * Andrew Yu Oct 20, 1994 file creation @@ -28,5 +28,15 @@ * macro makeNode. eg. to create a Resdom node, use makeNode(Resdom) * */ -Node *newNodeMacroHolder; +Node * +newNode(Size size, NodeTag tag) +{ + Node *newNode; + Assert(size >= sizeof(Node)); /* need the tag, at least */ + + newNode = (Node *) palloc(size); + MemSet((char *) newNode, 0, size); + newNode->type = tag; + return newNode; +} diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c index da666076627..b7dd265863f 100644 --- a/src/backend/utils/mmgr/mcxt.c +++ b/src/backend/utils/mmgr/mcxt.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/mcxt.c,v 1.33 2002/10/11 04:12:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/mmgr/mcxt.c,v 1.34 2002/10/11 04:16:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -453,29 +453,6 @@ MemoryContextAlloc(MemoryContext context, Size size) } /* - * MemoryContextAllocZero - * Like MemoryContextAlloc, but clears allocated memory - * - * We could just call MemoryContextAlloc then clear the memory, but this - * function is called too many times, so we have a separate version. - */ -void * -MemoryContextAllocZero(MemoryContext context, Size size) -{ - void *ret; - - AssertArg(MemoryContextIsValid(context)); - - if (!AllocSizeIsValid(size)) - elog(ERROR, "MemoryContextAllocZero: invalid request size %lu", - (unsigned long) size); - - ret = (*context->methods->alloc) (context, size); - MemSet(ret, 0, size); - return ret; -} - -/* * pfree * Release an allocated chunk. */ diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index 4b6a3c04eb5..5320c1b10d2 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: nodes.h,v 1.119 2002/10/11 04:12:14 momjian Exp $ + * $Id: nodes.h,v 1.120 2002/10/11 04:16:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -261,24 +261,6 @@ typedef struct Node #define nodeTag(nodeptr) (((Node*)(nodeptr))->type) -/* - * There is no way to dereference the palloc'ed pointer to assign the - * tag, and return the pointer itself, so we need a holder variable. - * Fortunately, this function isn't recursive so we just define - * a global variable for this purpose. - */ -extern Node *newNodeMacroHolder; - -#define newNode(size, tag) \ -( \ - AssertMacro((size) >= sizeof(Node)), /* need the tag, at least */ \ -\ - newNodeMacroHolder = (Node *) palloc0(size), \ - newNodeMacroHolder->type = (tag), \ - newNodeMacroHolder \ -) - - #define makeNode(_type_) ((_type_ *) newNode(sizeof(_type_),T_##_type_)) #define NodeSetTag(nodeptr,t) (((Node*)(nodeptr))->type = (t)) @@ -301,6 +283,11 @@ extern Node *newNodeMacroHolder; */ /* + * nodes/nodes.c + */ +extern Node *newNode(Size size, NodeTag tag); + +/* * nodes/{outfuncs.c,print.c} */ extern char *nodeToString(void *obj); diff --git a/src/include/utils/palloc.h b/src/include/utils/palloc.h index c1cb6f69c42..44adc1ed969 100644 --- a/src/include/utils/palloc.h +++ b/src/include/utils/palloc.h @@ -21,7 +21,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: palloc.h,v 1.20 2002/10/11 04:12:14 momjian Exp $ + * $Id: palloc.h,v 1.21 2002/10/11 04:16:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -46,12 +46,9 @@ extern DLLIMPORT MemoryContext CurrentMemoryContext; * Fundamental memory-allocation operations (more are in utils/memutils.h) */ extern void *MemoryContextAlloc(MemoryContext context, Size size); -extern void *MemoryContextAllocZero(MemoryContext context, Size size); #define palloc(sz) MemoryContextAlloc(CurrentMemoryContext, (sz)) -#define palloc0(sz) MemoryContextAllocZero(CurrentMemoryContext, (sz)) - extern void pfree(void *pointer); extern void *repalloc(void *pointer, Size size); |