X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=diffcore-delta.c;h=7cf431d261f9a35679ead7c8acda15aecdb8720d;hb=ee459baa5ce0a144e013a4995fd5be96bbecd05e;hp=e670f8512558c38d9a9d6e754cfc609b042b1195;hpb=77f143bf3e218857ec8e5244d7e862e8e0c1a041;p=git.git diff --git a/diffcore-delta.c b/diffcore-delta.c index e670f8512..7cf431d26 100644 --- a/diffcore-delta.c +++ b/diffcore-delta.c @@ -201,10 +201,15 @@ int diffcore_count_changes(struct diff_filespec *src, while (d->cnt) { if (d->hashval >= s->hashval) break; + la += d->cnt; d++; } src_cnt = s->cnt; - dst_cnt = d->hashval == s->hashval ? d->cnt : 0; + dst_cnt = 0; + if (d->cnt && d->hashval == s->hashval) { + dst_cnt = d->cnt; + d++; + } if (src_cnt < dst_cnt) { la += dst_cnt - src_cnt; sc += src_cnt; @@ -213,6 +218,10 @@ int diffcore_count_changes(struct diff_filespec *src, sc += dst_cnt; s++; } + while (d->cnt) { + la += d->cnt; + d++; + } if (!src_count_p) free(src_count);