diff options
Diffstat (limited to 'liblangtag/lt-trie.c')
-rw-r--r-- | liblangtag/lt-trie.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/liblangtag/lt-trie.c b/liblangtag/lt-trie.c index de4b080..a9d8455 100644 --- a/liblangtag/lt-trie.c +++ b/liblangtag/lt-trie.c @@ -166,20 +166,20 @@ _lt_trie_iter_init(lt_iter_tmpl_t *tmpl) int i; trie_iter = malloc(sizeof (lt_trie_iter_t)); - if (trie_iter) { - trie_iter->pos_str = lt_string_new(NULL); - trie_iter->last_key = NULL; - trie_iter->stack = NULL; - if (trie->root) { - lt_trie_node_t *node = trie->root; - - for (i = 0; i < 255; i++) { - if (node->node[i]) - trie_iter->stack = lt_list_append(trie_iter->stack, node->node[i], NULL); - } - /* add a terminator */ - trie_iter->stack = lt_list_append(trie_iter->stack, NULL, NULL); + if (!trie_iter) + return NULL; + trie_iter->pos_str = lt_string_new(NULL); + trie_iter->last_key = NULL; + trie_iter->stack = NULL; + if (trie->root) { + lt_trie_node_t *node = trie->root; + + for (i = 0; i < 255; i++) { + if (node->node[i]) + trie_iter->stack = lt_list_append(trie_iter->stack, node->node[i], NULL); } + /* add a terminator */ + trie_iter->stack = lt_list_append(trie_iter->stack, NULL, NULL); } return &trie_iter->parent; |