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.
--- 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)