Skip to content
Snippets Groups Projects
Commit 3f6e085f authored by Tom Lane's avatar Tom Lane
Browse files

Orthography fixes for new castNode() macro.

Clean up hastily-composed comment.  Normalize whitespace.

Erik Rijkers and myself
parent 15c54e83
No related branches found
No related tags found
No related merge requests found
......@@ -481,25 +481,25 @@ extern PGDLLIMPORT Node *newNodeMacroHolder;
#define IsA(nodeptr,_type_) (nodeTag(nodeptr) == T_##_type_)
/*
* castNode(type, ptr) casts ptr to type and, if cassert is enabled, verifies
* that the the c actually has the appropriate type (using it's nodeTag()).
* castNode(type, ptr) casts ptr to "type *", and if assertions are enabled,
* verifies that the node has the appropriate type (using its nodeTag()).
*
* Use an inline function when assertions are enabled, to avoid multiple
* evaluations of the ptr argument (which could e.g. be a function call). If
* inline functions are not available - only a small number of platforms -
* evaluations of the ptr argument (which could e.g. be a function call).
* If inline functions are not available - only a small number of platforms -
* don't Assert, but use the non-checking version.
*/
#if defined(USE_ASSERT_CHECKING) && defined(PG_USE_INLINE)
static inline Node*
castNodeImpl(enum NodeTag type, void *ptr)
static inline Node *
castNodeImpl(NodeTag type, void *ptr)
{
Assert(ptr == NULL || nodeTag(ptr) == type);
return ptr;
return (Node *) ptr;
}
#define castNode(_type_, nodeptr) ((_type_ *) castNodeImpl(T_##_type_, nodeptr))
#else
#define castNode(_type_,nodeptr) ((_type_ *)(nodeptr))
#endif
#define castNode(_type_, nodeptr) ((_type_ *) (nodeptr))
#endif /* USE_ASSERT_CHECKING && PG_USE_INLINE */
/* ----------------------------------------------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment