From: Marco Costalba Date: Sun, 22 Jul 2007 08:23:05 +0000 (+0200) Subject: Avoid to duplicate commit message when is not encoded X-Git-Tag: v1.5.3-rc3~23 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c4640fe8d9e25fd3e206a39233c71a6dbb68917e;p=git.git 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 --- diff --git a/commit.c b/commit.c index 4c5dfa9af..dc5a0643f 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);