From c4640fe8d9e25fd3e206a39233c71a6dbb68917e Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 22 Jul 2007 10:23:05 +0200 Subject: Avoid to duplicate commit message when is not encoded When a commit message doesn't have encoding information and encoding output is utf-8 (default) then an useless xstrdup() of commit message is done. If we assume most of users live in an utf-8 world, this useless copy is the common case. Performance issue found with KCachegrind. Signed-off-by: Marco Costalba Signed-off-by: Junio C Hamano --- commit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/commit.c b/commit.c index 4c5dfa9af0..dc5a0643f3 100644 --- a/commit.c +++ b/commit.c @@ -721,7 +721,10 @@ static char *logmsg_reencode(const struct commit *commit, encoding = get_header(commit, "encoding"); use_encoding = encoding ? encoding : utf8; if (!strcmp(use_encoding, output_encoding)) - out = xstrdup(commit->buffer); + if (encoding) /* we'll strip encoding header later */ + out = xstrdup(commit->buffer); + else + return NULL; /* nothing to do */ else out = reencode_string(commit->buffer, output_encoding, use_encoding); -- cgit v1.2.3