From: Maarten Bosmans <mkbosmans@xxxxxxxxx> From: Maarten Bosmans <maarten.bosmans@xxxxxxxxxx> Avoid an extra allocation in the strbuf when pushing the string into it. Signed-off-by: Maarten Bosmans <maarten.bosmans@xxxxxxxxxx> --- builtin/notes.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/builtin/notes.c b/builtin/notes.c index 0e98a820dd..71f36667f3 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -313,10 +313,8 @@ static int parse_reuse_arg(const struct option *opt, const char *arg, int unset) if (type != OBJ_BLOB) die(_("cannot read note data from non-blob object '%s'."), arg); - strbuf_add(&msg->buf, value, len); - free(value); + strbuf_attach(&msg->buf, value, len, len + 1); - msg->buf.len = len; ALLOC_GROW_BY(d->messages, d->msg_nr, 1, d->msg_alloc); d->messages[d->msg_nr - 1] = msg; msg->stripspace = NO_STRIPSPACE; @@ -702,12 +700,11 @@ static int append_edit(int argc, const char **argv, const char *prefix) char *prev_buf = repo_read_object_file(the_repository, note, &type, &size); if (prev_buf && size) - strbuf_add(&buf, prev_buf, size); + strbuf_attach(&buf, prev_buf, size, size + 1); if (d.buf.len && prev_buf && size) append_separator(&buf); strbuf_insert(&d.buf, 0, buf.buf, buf.len); - free(prev_buf); strbuf_release(&buf); } -- 2.35.3