commit: drop useless xstrdup of commit message
authorJeff King <peff@peff.net>
Sat, 26 Jan 2013 09:42:45 +0000 (04:42 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sat, 26 Jan 2013 21:28:19 +0000 (13:28 -0800)
When git-commit is asked to reuse a commit message via "-c",
we call read_commit_message, which looks up the commit and
hands back either the re-encoded result, or a copy of the
original. We make a copy in the latter case so that the
ownership semantics of the return value are clear (in either
case, it can be freed).

However, since we return a "const char *", and since the
resulting buffer's lifetime is the same as that of the whole
program, we never bother to free it at all.

Let's just drop the copy. That saves us a copy in the common
case. While it does mean we leak in the re-encode case, it
doesn't matter, since we are relying on program exit to free
the memory anyway.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c

index 38b9a9cc0d0e1beba3258f907e95ae1ad76f85f5..fbbb40fff93f652fbe23730272fb88a6dbda29b6 100644 (file)
@@ -962,7 +962,7 @@ static const char *read_commit_message(const char *name)
         * encodings are identical.
         */
        if (out == NULL)
-               out = xstrdup(commit->buffer);
+               out = commit->buffer;
        return out;
 }