summaryrefslogtreecommitdiff
path: root/src/basic/strbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic/strbuf.c')
-rw-r--r--src/basic/strbuf.c7
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;