summaryrefslogtreecommitdiff
path: root/lib/command_graph.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/command_graph.c')
-rw-r--r--lib/command_graph.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/lib/command_graph.c b/lib/command_graph.c
index 3e52f42598..e8f72db19e 100644
--- a/lib/command_graph.c
+++ b/lib/command_graph.c
@@ -88,29 +88,12 @@ new_node(enum graph_node_type type)
return node;
}
-struct graph_node *
-copy_node (struct graph_node *node)
-{
- struct graph_node *new = new_node(node->type);
- new->children = NULL;
- new->is_start = node->is_start;
- new->end = node->end;
- new->text = node->text ? XSTRDUP(MTYPE_CMD_TOKENS, node->text) : NULL;
- new->value = node->value;
- new->min = node->min;
- new->max = node->max;
- new->element = node->element ? copy_cmd_element(node->element) : NULL;
- new->arg = node->arg ? XSTRDUP(MTYPE_CMD_TOKENS, node->arg) : NULL;
- new->refs = 0;
- return new;
-}
-
void
free_node (struct graph_node *node)
{
if (!node) return;
- vector_free (node->children);
- free_cmd_element (node->element);
+ if (node->children) vector_free (node->children);
+ if (node->element) free_cmd_element (node->element);
free (node->text);
free (node->arg);
free (node);