logmsg_reencode: never return NULL
authorJeff King <peff@peff.net>
Sat, 26 Jan 2013 09:44:06 +0000 (04:44 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sat, 26 Jan 2013 21:28:21 +0000 (13:28 -0800)
commitdd0d388c44c28ebc021a24eeddc60287d4ea249c
treec2899c33f7bebae72fcc57d5d120a781a63b8ac5
parent200ebe362cda2a520219f998d4b2c44767992bdb
logmsg_reencode: never return NULL

The logmsg_reencode function will return the reencoded
commit buffer, or NULL if reencoding failed or no reencoding
was necessary. Since every caller then ends up checking for NULL
and just using the commit's original buffer, anyway, we can
be a bit more helpful and just return that buffer when we
would have returned NULL.

Since the resulting string may or may not need to be freed,
we introduce a logmsg_free, which checks whether the buffer
came from the commit object or not (callers either
implemented the same check already, or kept two separate
pointers, one to mark the buffer to be used, and one for the
to-be-freed string).

Pushing this logic into logmsg_* simplifies the callers, and
will let future patches lazily load the commit buffer in a
single place.

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