convert logmsg_reencode to get_commit_buffer
authorJeff King <peff@peff.net>
Tue, 10 Jun 2014 21:41:39 +0000 (17:41 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 13 Jun 2014 19:08:17 +0000 (12:08 -0700)
commitb66103c3baa593a39b8b0751213b9fce60e94de4
tree3bdd4603011427fe37e0d9a90d3a910860e22238
parentba41c1c93fd9109eae954f75a8cb8e32c3e29530
convert logmsg_reencode to get_commit_buffer

Like the callsites in the previous commit, logmsg_reencode
already falls back to read_sha1_file when necessary.
However, I split its conversion out into its own commit
because it's a bit more complex.

We return either:

  1. The original commit->buffer

  2. A newly allocated buffer from read_sha1_file

  3. A reencoded buffer (based on either 1 or 2 above).

while trying to do as few extra reads/allocations as
possible. Callers currently free the result with
logmsg_free, but we can simplify this by pointing them
straight to unuse_commit_buffer. This is a slight layering
violation, in that we may be passing a buffer from (3).
However, since the end result is to free() anything except
(1), which is unlikely to change, and because this makes the
interface much simpler, it's a reasonable bending of the
rules.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/blame.c
builtin/reset.c
commit.h
pretty.c
revision.c
sequencer.c