From 3129f0d22f78858b52289ab60d71600e366c1fbd Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Fri, 4 Sep 2015 14:07:35 +0300 Subject: [PATCH] EA-72290 - AIOOBE: LineSet.clearModificationFlags --- .../src/com/intellij/openapi/editor/impl/LineSet.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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;