/*====================================================================* * * NODE * xmlfree (NODE * node); * * node.h * * recursively free child nodes; minimize recursion by following * node->after at each level; * * the caller must free the root node; this allows that the root * to be statically declared, if desired; * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright (c) 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * *--------------------------------------------------------------------*/ #ifndef XMLFREE_SOURCE #define XMLFREE_SOURCE #include <stdlib.h> #include <memory.h> #include "../nodes/node.h" void xmlfree (NODE * node) { if (node) { node = node->below; } while (node) { NODE * temp = node; if (node->above) { node->above->below = (NODE *)(0); } if (node->prior) { node->prior->after = (NODE *)(0); } xmlfree (node); node = node->after; free (temp); } return; } #endif