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)