diff --git a/platform/core-impl/src/com/intellij/openapi/editor/impl/LineSet.java b/platform/core-impl/src/com/intellij/openapi/editor/impl/LineSet.java index 1d3e1dfa4482..973ec2af3aaa 100644 --- a/platform/core-impl/src/com/intellij/openapi/editor/impl/LineSet.java +++ b/platform/core-impl/src/com/intellij/openapi/editor/impl/LineSet.java @@ -184,10 +184,15 @@ public class LineSet{ } LineSet clearModificationFlags(int startLine, int endLine) { - if (startLine == endLine) return this; + if (startLine > endLine) { + throw new IllegalArgumentException("endLine < startLine: " + endLine + " < " + startLine + "; lineCount: " + getLineCount()); + } checkLineIndex(startLine); checkLineIndex(endLine - 1); + if (isLastEmptyLine(endLine - 1)) endLine--; + if (startLine >= endLine) return this; + byte[] flags = myFlags.clone(); for (int i = startLine; i < endLine; i++) { flags[i] &= ~MODIFIED_MASK;