Oops, back out newNode changes. We are not ready for that yet.
authorBruce Momjian <[email protected]>
Fri, 11 Oct 2002 04:16:44 +0000 (04:16 +0000)
committerBruce Momjian <[email protected]>
Fri, 11 Oct 2002 04:16:44 +0000 (04:16 +0000)
src/backend/nodes/nodes.c
src/backend/utils/mmgr/mcxt.c
src/include/nodes/nodes.h
src/include/utils/palloc.h

index d7d5954a5998f5d98cb8412b6210f36784fe9860..1737ccce25212e7f9d922f24ba2e47b78aa2218a 100644 (file)
  *       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;
+}
index bdf5a1ce4b88e560bcedcccd8ccf2cc012e0ba0f..48b6e8163b9f1cf875324b8384029c7e3c80ad0b 100644 (file)
@@ -452,29 +452,6 @@ MemoryContextAlloc(MemoryContext context, Size size)
        return (*context->methods->alloc) (context, 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.
index 808cfaefc455f632fa942836217c7d08a8694414..54963c64787c41456583dfb9c784e0aa748d15d0 100644 (file)
@@ -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))
 
@@ -300,6 +282,11 @@ extern Node *newNodeMacroHolder;
  * ----------------------------------------------------------------
  */
 
+/*
+ * nodes/nodes.c
+ */
+extern Node *newNode(Size size, NodeTag tag);
+
 /*
  * nodes/{outfuncs.c,print.c}
  */
index 6d2bbc4c47ffe2404569093d8dbb51dedb523fce..11fc74298dd27d0827c22e381837f30fe7734741 100644 (file)
@@ -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);