]> git.ipfire.org Git - thirdparty/git.git/blobdiff - strbuf.h
strbuf_setlen(): do not barf on setting length of an empty buffer to 0
[thirdparty/git.git] / strbuf.h
index 567e2d17d1a5300b35b010c73ed68a376c6001cb..3b19de3048bf9d96feb11380e743db2034acad50 100644 (file)
--- a/strbuf.h
+++ b/strbuf.h
@@ -65,14 +65,17 @@ static inline void strbuf_swap(struct strbuf *a, struct strbuf *b) {
 static inline size_t strbuf_avail(struct strbuf *sb) {
        return sb->alloc ? sb->alloc - sb->len - 1 : 0;
 }
+
+extern void strbuf_grow(struct strbuf *, size_t);
+
 static inline void strbuf_setlen(struct strbuf *sb, size_t len) {
-       assert (len < sb->alloc);
+       if (!sb->alloc)
+               strbuf_grow(sb, 0);
+       assert(len < sb->alloc);
        sb->len = len;
        sb->buf[len] = '\0';
 }
 
-extern void strbuf_grow(struct strbuf *, size_t);
-
 /*----- content related -----*/
 extern void strbuf_rtrim(struct strbuf *);