 
         // Walk the reverse path one step.
         var kIndex2 = -currentD + k2start
-        walkReservePath(kIndex2: &kIndex2, currentD, &k2end, vOffset, &vectors2, arrayALength, arrayBLength, inArrayA, inArrayB, &k2start, front, delta, vLength, &vectors1, &diffs, &haveFoundDiffs)
+        walkReversePath(kIndex2: &kIndex2,
+                        currentD: currentD,
+                        k2end: &k2end,
+                        vOffset: vOffset,
+                        vectors2: &vectors2,
+                        inArrayA: inArrayA,
+                        inArrayB: inArrayB,
+                        k2start: &k2start,
+                        front: front,
+                        delta: delta,
+                        vLength: vLength,
+                        vectors1: &vectors1,
+                        diffs: &diffs,
+                        haveFoundDiffs: &haveFoundDiffs)
 
         if haveFoundDiffs {
             break

                              diffs: inout [Diff<T>]) -> Bool {

    var haveFoundDiffs = false // assume
    while kIndex1 <= currentD - k1end {
        defer {
            kIndex1 += 2
        }
        let k1Offset = vOffset + kIndex1
        var x1 = 0

        if kIndex1 == -currentD || (kIndex1 != currentD && vectors1[k1Offset - 1] < vectors1[k1Offset + 1]) {
            x1 = vectors1[k1Offset + 1]
        } else {
            x1 = vectors1[k1Offset - 1] + 1

        var y1 = x1 - kIndex1

        // follow the snake!
        while x1 < parameters.inArrayA.count && y1 < parameters.inArrayB.count && parameters.inArrayA[x1] == parameters.inArrayB[y1] {
            x1 += 1
            y1 += 1
        }

        vectors1[k1Offset] = x1

        if x1 > parameters.inArrayA.count {
            // Ran off the right of the graph.
            k1end += 2
        } else if y1 > parameters.inArrayB.count {
            // Ran off the bottom of the graph.
            k1start += 2
        } else if front {
            let k2Offset = parameters.vOffset + delta - kIndex1

            if k2Offset >= 0 && k2Offset < vLength && vectors2[k2Offset] != -1 {
                // Mirror x2 onto top-left coordinate system.
                let x2 = parameters.inArrayA.count - vectors2[k2Offset]
                if x1 >= x2 {
                    // diffs = diff_bisectSplitOfStrings(text1, text2, x1, y1, properties);
                    diffs = diff_bisectSplitOfArrays(arrayA: parameters.inArrayA, arrayB: parameters.inArrayB, x: x1, y: y1)
                    haveFoundDiffs = true
                    break
                }
