Skip to content

Commit ea796da

Browse files
committed
[merge addon] Fix sorted insertion in aligned line set (again)
Issue codemirror#4353
1 parent 6d3a745 commit ea796da

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

addon/merge/merge.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -335,20 +335,14 @@
335335
linesToAlign.push([chunk.origTo, chunk.editTo, other ? getMatchingOrigLine(chunk.editTo, other.chunks) : null]);
336336
}
337337
if (other) {
338-
for (var i = 0; i < other.chunks.length; i++) {
338+
chunkLoop: for (var i = 0; i < other.chunks.length; i++) {
339339
var chunk = other.chunks[i];
340340
for (var j = 0; j < linesToAlign.length; j++) {
341-
var align = linesToAlign[j];
342-
if (align[1] == chunk.editTo) {
343-
j = -2;
344-
break;
345-
} else if (align[1] > chunk.editTo) {
346-
j--
347-
break;
348-
}
341+
var diff = linesToAlign[j][1] - chunk.editTo;
342+
if (diff == 0) continue chunkLoop
343+
if (diff > 0) break;
349344
}
350-
if (j > -2)
351-
linesToAlign.splice(j, 0, [getMatchingOrigLine(chunk.editTo, dv.chunks), chunk.editTo, chunk.origTo]);
345+
linesToAlign.splice(j, 0, [getMatchingOrigLine(chunk.editTo, dv.chunks), chunk.editTo, chunk.origTo]);
352346
}
353347
}
354348
return linesToAlign;

0 commit comments

Comments
 (0)