From f2cc85e1240289b02af7d509fe2f262f505444de Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Thu, 21 Jun 2018 19:48:59 +0300 Subject: [PATCH] some performance tweaks --- .../src/com/intellij/openapi/editor/impl/EditorImpl.java | 1 + .../src/com/intellij/openapi/editor/impl/view/LineLayout.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 074d7939250f..fb313c7aae1e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -3122,6 +3122,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public void setVerticalScrollbarOrientation(int type) { assertIsDispatchThread(); + if (myScrollBarOrientation == type) return; int currentHorOffset = myScrollingModel.getHorizontalScrollOffset(); myScrollBarOrientation = type; myScrollPane.putClientProperty(JBScrollPane.Flip.class, diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java index ad198497d634..cc8953a9c56c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/LineLayout.java @@ -18,6 +18,7 @@ import com.intellij.psi.TokenType; import com.intellij.psi.tree.IElementType; import com.intellij.util.BitUtil; import com.intellij.util.DocumentUtil; +import com.intellij.util.SmartList; import com.intellij.util.text.CharArrayUtil; import org.intellij.lang.annotations.JdkConstants; import org.jetbrains.annotations.NotNull; @@ -569,7 +570,7 @@ abstract class LineLayout { int start = Math.max(startOffset, targetStartOffset); int end = Math.min(endOffset, targetEndOffset); BidiRun subRun = new BidiRun(level, start, end); - List subChunks = new ArrayList<>(); + List subChunks = new SmartList<>(); Document document = view.getEditor().getDocument(); for (Chunk chunk : getChunks(document.getImmutableCharSequence(), document.getLineStartOffset(line))) { if (chunk.endOffset <= start) continue;