From bc25684f0c1b27de2cbee7a7df82f249611547c4 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Wed, 10 Oct 2018 03:02:53 -0400 Subject: [PATCH] [core] perf: buffer_string_append_len() buffer_string_append_len() short-circuit common case, but preserve blank-string initialization side-effect if buffer is empty --- src/buffer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/buffer.c b/src/buffer.c index d742cc63..bbd24273 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -128,6 +128,9 @@ char* buffer_string_prepare_copy(buffer *b, size_t size) { char* buffer_string_prepare_append(buffer *b, size_t size) { force_assert(NULL != b); + if (b->used && size < b->size - b->used) + return b->ptr + b->used - 1; + if (buffer_string_is_empty(b)) { return buffer_string_prepare_copy(b, size); } else {