From 88bcf81213b292e58ddaa41643e4146299cc750f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 30 Apr 2016 14:05:42 +0300 Subject: [PATCH] lib: Optimize str_append_n() --- src/lib/str.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/str.c b/src/lib/str.c index 6e6066839e..3a5c92dd06 100644 --- a/src/lib/str.c +++ b/src/lib/str.c @@ -83,12 +83,14 @@ bool str_equals(const string_t *str1, const string_t *str2) void str_append_n(string_t *str, const void *cstr, size_t max_len) { + const char *p; size_t len; - len = 0; - while (len < max_len && ((const char *)cstr)[len] != '\0') - len++; - + p = memchr(cstr, '\0', max_len); + if (p == NULL) + len = max_len; + else + len = p - (const char *)cstr; buffer_append(str, cstr, len); } -- 2.47.3