diff options
Diffstat (limited to 'lib/command_graph.c')
| -rw-r--r-- | lib/command_graph.c | 21 |
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); |
