From 5fbe193cf45e5f5b5ef338a281db67c6f289d1ae Mon Sep 17 00:00:00 2001 From: Alexey Gopachenko Date: Tue, 18 Nov 2014 20:14:04 +0100 Subject: [PATCH] Faster leaf node search CR-IU-897 - minor improvements (cherry picked from commit 03ff93d) --- .../intellij/psi/impl/source/tree/CompositeElement.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositeElement.java b/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositeElement.java index c0b7d3352bb4..e4d2d51c3251 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositeElement.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/tree/CompositeElement.java @@ -164,10 +164,11 @@ public class CompositeElement extends TreeElement { while (true) { TreeElement child = element.getFirstChildNode(); TreeElement lastChild = element.getLastChildNode(); - boolean fwd = lastChild == null || (lastChild.getStartOffset() + lastChild.getTextLength() - child.getStartOffset()) / 2 > offset; + int elementTextLength = element.getTextLength(); + boolean fwd = lastChild == null || elementTextLength / 2 > offset; if (!fwd) { child = lastChild; - offset = element.getTextLength() - offset; + offset = elementTextLength - offset; } while (child != null) { final int textLength = child.getTextLength(); @@ -179,7 +180,7 @@ public class CompositeElement extends TreeElement { } return (LeafElement)child; } - offset = fwd ? offset : child.getTextLength() - offset; + offset = fwd ? offset : textLength - offset; element = child; continue startFind; }