diff options
Diffstat (limited to 'src/basic/strbuf.c')
-rw-r--r-- | src/basic/strbuf.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/basic/strbuf.c b/src/basic/strbuf.c index e2ed776a09..81f4f21ade 100644 --- a/src/basic/strbuf.c +++ b/src/basic/strbuf.c @@ -66,6 +66,9 @@ void strbuf_complete(struct strbuf *str) { /* clean up everything */ void strbuf_cleanup(struct strbuf *str) { + if (!str) + return; + strbuf_complete(str); free(str->buf); free(str); @@ -139,9 +142,7 @@ ssize_t strbuf_add_string(struct strbuf *str, const char *s, size_t len) { /* lookup child node */ search.c = c; - child = bsearch_safe(&search, node->children, node->children_count, - sizeof(struct strbuf_child_entry), - (__compar_fn_t) strbuf_children_cmp); + child = typesafe_bsearch(&search, node->children, node->children_count, strbuf_children_cmp); if (!child) break; node = child->child; |