[PATCH 2 of 6 STABLE] bdiff: unify duplicate normalize loops

Matt Mackall mpm at selenic.com
Sat Apr 23 11:41:15 EDT 2016


# HG changeset patch
# User Matt Mackall <mpm at selenic.com>
# Date 1461292633 18000
#      Thu Apr 21 21:37:13 2016 -0500
# Branch stable
# Node ID f2310bbf12db65ebf1c9e150ae784fa2ef630c26
# Parent  819d49f91597733db78db240523115279fc71b2d
bdiff: unify duplicate normalize loops

We're about to make the while loop check more complicated, so let's simplify
first.

diff -r 819d49f91597 -r f2310bbf12db mercurial/bdiff.c
--- a/mercurial/bdiff.c	Thu Apr 21 21:05:26 2016 -0500
+++ b/mercurial/bdiff.c	Thu Apr 21 21:37:13 2016 -0500
@@ -264,16 +264,11 @@
 		if (!next)
 			break;
 
-		if (curr->a2 == next->a1)
+		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++;
-		else if (curr->b2 == next->b1)
-			while (curr->b2 + shift < bn && curr->a2 + shift < an
-			       && !cmp(b + curr->b2 + shift,
-				       a + curr->a2 + shift))
-				shift++;
 		if (!shift)
 			continue;
 		curr->b2 += shift;


More information about the Mercurial-devel mailing list