From 58a28122aa8e88538eb4c6eae9800cced98188ed Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 24 Sep 2019 19:02:52 +0300 Subject: [PATCH] lst: optimization - do not compare CharSequences if they're identical This is the case for `LineStatusTrackerBase`. GitOrigin-RevId: 696edac43b83725b44bdc1cef559453085e3dec8 --- .../com/intellij/openapi/vcs/ex/DocumentTracker.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/openapi/vcs/ex/DocumentTracker.kt b/platform/diff-impl/src/com/intellij/openapi/vcs/ex/DocumentTracker.kt index f0393c0a656f..3b93767670a2 100644 --- a/platform/diff-impl/src/com/intellij/openapi/vcs/ex/DocumentTracker.kt +++ b/platform/diff-impl/src/com/intellij/openapi/vcs/ex/DocumentTracker.kt @@ -47,10 +47,13 @@ class DocumentTracker : Disposable { this.document2 = document2 this.handler = handler - val changes = compareLines(document1.immutableCharSequence, - document2.immutableCharSequence, - document1.lineOffsets, - document2.lineOffsets).iterateChanges().toList() + val changes = when { + document1.immutableCharSequence === document2.immutableCharSequence -> emptyList() + else -> compareLines(document1.immutableCharSequence, + document2.immutableCharSequence, + document1.lineOffsets, + document2.lineOffsets).iterateChanges().toList() + } tracker = LineTracker(this.handler, changes) val application = ApplicationManager.getApplication()