diff --git a/backend/reconcile/src/diffs/myers.rs b/backend/reconcile/src/diffs/myers.rs index e7af8519..c31e155a 100644 --- a/backend/reconcile/src/diffs/myers.rs +++ b/backend/reconcile/src/diffs/myers.rs @@ -40,7 +40,7 @@ pub fn diff(old: &[Token], new: &[Token]) -> Vec> where T: PartialEq + Clone, { - let max_d = max_d(old.len(), new.len()); + let max_d = (old.len() + new.len()).div_ceil(2); let mut vb = V::new(max_d); let mut vf = V::new(max_d); let mut result: Vec> = vec![]; @@ -99,11 +99,6 @@ impl IndexMut for V { } } -fn max_d(len1: usize, len2: usize) -> usize { - // XXX look into reducing the need to have the additional '+ 1' - (len1 + len2 + 1) / 2 + 1 -} - #[inline(always)] fn split_at(range: Range, at: usize) -> (Range, Range) { (range.start..at, at..range.end) @@ -145,7 +140,7 @@ where vb[1] = 0; // We only need to explore ceil(D/2) + 1 - let d_max = max_d(n, m); + let d_max = (n + m).div_ceil(2); assert!(vf.len() >= d_max); assert!(vb.len() >= d_max);