bdiff: remove effectively dead code stable
authorMatt Mackall <mpm@selenic.com>
Thu, 02 Jun 2016 17:11:32 -0500
branchstable
changeset 29323 d29cb5e735e9
parent 29322 66dbdd3cc2b9
child 29328 60621cecc8c5
child 29329 f359cdc91e21
bdiff: remove effectively dead code Now that we extend matches backwards in the inner loop, the final adjustment has no effect. (A similar extension for the forward direction is trickier and has less benefit.)
mercurial/bdiff.c
--- a/mercurial/bdiff.c	Thu Jun 02 17:09:06 2016 -0500
+++ b/mercurial/bdiff.c	Thu Jun 02 17:11:32 2016 -0500
@@ -148,7 +148,7 @@
 static int longest_match(struct line *a, struct line *b, struct pos *pos,
 			 int a1, int a2, int b1, int b2, int *omi, int *omj)
 {
-	int mi = a1, mj = b1, mk = 0, mb = 0, i, j, k, half;
+	int mi = a1, mj = b1, mk = 0, i, j, k, half;
 
 	/* window our search on large regions to better bound
 	   worst-case performance. by choosing a window at the end, we
@@ -195,18 +195,15 @@
 		mj = mj - mk + 1;
 	}
 
-	/* expand match to include neighboring popular lines */
-	while (mi - mb > a1 && mj - mb > b1 &&
-	       a[mi - mb - 1].e == b[mj - mb - 1].e)
-		mb++;
+	/* expand match to include subsequent popular lines */
 	while (mi + mk < a2 && mj + mk < b2 &&
 	       a[mi + mk].e == b[mj + mk].e)
 		mk++;
 
-	*omi = mi - mb;
-	*omj = mj - mb;
+	*omi = mi;
+	*omj = mj;
 
-	return mk + mb;
+	return mk;
 }
 
 static struct hunk *recurse(struct line *a, struct line *b, struct pos *pos,