Ejemplo n.º 1
0
static void freeAstList(MList list)
{
    MListNode current = list->head;
    while (current != NULL)
    {
        MListNode next = current->next;
        freeAst(current->v);
        free(current);
        current = next;
    }
    free(list);
}
Ejemplo n.º 2
0
void freeAst(pAstNode tree)
{
    if (!tree) {
        die("freeAst: argument can not point to NULL.");
    }
    if (tree->payload != NULL) {
        freePayload(tree->payload);
    }
    for (unsigned int index = 0; index < tree->numOfChildren; index++) {
        freeAst(getAstChild(tree, index));
    }
    free(tree);
}