From 00e859279e361734aa38adfbbb16d25af0be8bda Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Mon, 23 Sep 2013 21:52:42 -0700 Subject: [PATCH] Clean up unnecessary git_buf_printf calls This replaces some git_buf_printf calls with simple calls to git_buf_put instead. Also, it fixes a missing va_end inside the git_buf_vprintf implementation. --- src/buffer.c | 2 ++ src/diff_print.c | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 1371607fe..20682322e 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -211,6 +211,8 @@ int git_buf_vprintf(git_buf *buf, const char *format, va_list ap) format, args ); + va_end(args); + if (len < 0) { git__free(buf->ptr); buf->ptr = git_buf__oom; diff --git a/src/diff_print.c b/src/diff_print.c index ee4b5fc17..fd18b67e3 100644 --- a/src/diff_print.c +++ b/src/diff_print.c @@ -336,7 +336,7 @@ static int diff_print_patch_hunk( return 0; git_buf_clear(pi->buf); - if (git_buf_printf(pi->buf, "%.*s", (int)header_len, header) < 0) + if (git_buf_put(pi->buf, header, header_len) < 0) return -1; if (pi->print_cb(d, r, GIT_DIFF_LINE_HUNK_HDR, @@ -360,13 +360,14 @@ static int diff_print_patch_line( return 0; git_buf_clear(pi->buf); + git_buf_grow(pi->buf, content_len + 2); if (line_origin == GIT_DIFF_LINE_ADDITION || line_origin == GIT_DIFF_LINE_DELETION || line_origin == GIT_DIFF_LINE_CONTEXT) - git_buf_printf(pi->buf, "%c%.*s", line_origin, (int)content_len, content); - else if (content_len > 0) - git_buf_printf(pi->buf, "%.*s", (int)content_len, content); + git_buf_putc(pi->buf, line_origin); + + git_buf_put(pi->buf, content, content_len); if (git_buf_oom(pi->buf)) return -1;