diff options
Diffstat (limited to 'zix')
-rw-r--r-- | zix/btree.c | 6 | ||||
-rw-r--r-- | zix/trie.c | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/zix/btree.c b/zix/btree.c index dc8f32b..55d6613 100644 --- a/zix/btree.c +++ b/zix/btree.c @@ -593,8 +593,10 @@ zix_btree_remove(ZixBTree* const t, n->children[1]->n_vals}; n = zix_btree_merge(t, n, 0); - ti->stack[ti->level].node = n; - ti->stack[ti->level].index = counts[i]; + if (ti) { + ti->stack[ti->level].node = n; + ti->stack[ti->level].index = counts[i]; + } } else { // Both child's siblings are minimal, merge them if (i < n->n_vals) { @@ -215,7 +215,11 @@ trie_insert_tail(ZixTrieNode** n_ptr, while (first[0]) { assert(zix_trie_node_check(*n_ptr)); - c = realloc_node(NULL, 1); + c = realloc_node(NULL, 1); + if (!c) { + return NULL; + } + c->str = NULL; c->num_children = 0; @@ -225,6 +229,11 @@ trie_insert_tail(ZixTrieNode** n_ptr, ++first; } + + if (!c) { + return NULL; + } + c->num_children = 0; c->str = str; assert(zix_trie_node_check(c)); |