Mercurial > hg
changeset 29011:8bcda4c76820 stable
bdiff: fold in shift calculation in normalize
This just makes the code harder to read without any performance
advantage. We're going to make the check here more complex, let's make
it simpler first.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 21 Apr 2016 21:46:31 -0500 |
parents | e868d8ee7c8f |
children | 4bd67ae7d75a |
files | mercurial/bdiff.c |
diffstat | 1 files changed, 7 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bdiff.c Thu Apr 21 21:37:13 2016 -0500 +++ b/mercurial/bdiff.c Thu Apr 21 21:46:31 2016 -0500 @@ -259,22 +259,18 @@ /* normalize the hunk list, try to push each hunk towards the end */ for (curr = base->next; curr; curr = curr->next) { struct hunk *next = curr->next; - int shift = 0; if (!next) break; if (curr->a2 == next->a1 || curr->b2 == next->b1) - while (curr->a2 + shift < an && curr->b2 + shift < bn - && !cmp(a + curr->a2 + shift, - b + curr->b2 + shift)) - shift++; - if (!shift) - continue; - curr->b2 += shift; - next->b1 += shift; - curr->a2 += shift; - next->a1 += shift; + while (curr->a2 < an && curr->b2 < bn + && !cmp(a + curr->a2, b + curr->b2)) { + curr->a2++; + next->a1++; + curr->b2++; + next->b1++; + } } for (curr = base->next; curr; curr = curr->next)