Re: [PATCH] git-diff: fix combined diff
- From
Jeff King <peff@peff.net>
- Date
- Feb 23, 2007, 05:34 UTC
- Message-ID
- <20070223053428.GA13301@coredump.intra.peff.net>
- In-Reply-To
- <Pine.LNX.4.63.0702230517480.22628@wbgn013.biozentrum.uni-wuerzburg.de>
On Fri, Feb 23, 2007 at 05:20:32AM +0100, Johannes Schindelin wrote:
> With "const unsigned (*parent)[20]", "parent + 1" is not the > same as "&parent[1]"...
Actually, they _are_ the same (the C standard definition of A[B] is *(A+B)). The problem is the operator precedence of the cast:
> - hashcpy((unsigned char*)parent + i, ent[ents - 1 - i].item->sha1);
which translates to "cast parent to an unsigned char pointer, and then add i * sizeof(unsigned char) to it".
Your fix works because [] binds more tightly, fixing the precedence problem. You could also do this: hashcpy((unsigned char*)(parent + i), ...
-Peff