From: Jeff King Date: Sun, 07 Jul 2013 04:03:37 GMT Subject: Re: [PATCH] diffcore-pickaxe: simplify has_changes and contains Message-ID: <20130707040337.GA30898@sigill.intra.peff.net> In-Reply-To: <1373118807-1345-1-git-send-email-rene.scharfe@lsrfire.ath.cx> On Sat, Jul 06, 2013 at 03:53:27PM +0200, René Scharfe wrote: > Halve the number of callsites of contains() to two using temporary > variables, simplifying the code. While at it, get rid of the > diff_options parameter, which became unused with 8fa4b09f. There is a slight change in behavior, too: > - if (!one) > - return contains(two, o, regexp, kws) != 0; > - if (!two) > - return contains(one, o, regexp, kws) != 0; > - return contains(one, o, regexp, kws) != contains(two, o, regexp, kws); > + unsigned int one_contains = one ? contains(one, regexp, kws) : 0; > + unsigned int two_contains = two ? contains(two, regexp, kws) : 0; > + return one_contains != two_contains; Before, if (!one && !two) we would call contains(two, ...), and now we will simply assume it is zero. Which I think is an improvement, as we would have segfaulted before. I don't think it is a bug in the current code (we would not ever feed the function two NULLs), but it is nice to be more defensive. Acked-by: Jeff King -Peff