From 33cd9043b495bfeb8ce8fea4aa152a9b75a92044 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Thu, 14 Sep 2017 23:27:55 +0300 Subject: [PATCH] [vcs-log] cache full message in indexed details for speed-up --- .../vcs/log/data/index/IndexedDetails.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexedDetails.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexedDetails.java index 90f7858f2257..e2b9ebe0d662 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexedDetails.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexedDetails.java @@ -19,12 +19,14 @@ import com.intellij.vcs.log.Hash; import com.intellij.vcs.log.data.LoadingDetails; import com.intellij.vcs.log.data.VcsLogStorage; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.List; public class IndexedDetails extends LoadingDetails { @NotNull private final IndexDataGetter myDataGetter; private final int myCommitIndex; + @Nullable private String myFullMessage; public IndexedDetails(@NotNull IndexDataGetter dataGetter, @NotNull VcsLogStorage storage, @@ -35,10 +37,18 @@ public class IndexedDetails extends LoadingDetails { myCommitIndex = commitIndex; } + @Nullable + private String getFullMessageFromIndex() { + if (myFullMessage == null) { + myFullMessage = myDataGetter.getFullMessage(myCommitIndex); + } + return myFullMessage; + } + @NotNull @Override public String getFullMessage() { - String message = myDataGetter.getFullMessage(myCommitIndex); + String message = getFullMessageFromIndex(); if (message != null) return message; return super.getFullMessage(); } @@ -46,7 +56,7 @@ public class IndexedDetails extends LoadingDetails { @NotNull @Override public String getSubject() { - String message = myDataGetter.getFullMessage(myCommitIndex); + String message = getFullMessageFromIndex(); if (message != null) { return getSubject(message); }