From: Lucas De Marchi Date: Fri, 17 Oct 2014 00:39:33 +0000 (-0300) Subject: strbuf: make strbuf_pushchars() a little less dumb X-Git-Tag: v19~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e62d8c725b73cc03efc01df59bf5cc5a5fa31b5d;p=platform%2Fupstream%2Fkmod.git strbuf: make strbuf_pushchars() a little less dumb Do not push one char at a time. We have strlen() and memcpy() to rely on. --- diff --git a/shared/strbuf.c b/shared/strbuf.c index af445d9..e5df35d 100644 --- a/shared/strbuf.c +++ b/shared/strbuf.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "util.h" #include "strbuf.h" @@ -93,15 +94,20 @@ bool strbuf_pushchar(struct strbuf *buf, char ch) unsigned strbuf_pushchars(struct strbuf *buf, const char *str) { - unsigned i = 0; - int ch; + unsigned int len; - while ((ch = str[i])) { - strbuf_pushchar(buf, ch); - i++; - } + assert(str != NULL); + assert(buf != NULL); + + len = strlen(str); + + if (!buf_grow(buf, buf->used + len)) + return 0; + + memcpy(buf->bytes + buf->used, str, len); + buf->used += len; - return i; + return len; } void strbuf_popchar(struct strbuf *buf)