From d1f6e0e2bedd8259d40ab74000a93ba17ad71434 Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Mon, 9 Jul 2018 21:37:15 +0300 Subject: [PATCH] [vcs-log] iterate over commits persistent set during filtering by index Since commits map was introduced in 32e141ef1b6a336a971f005a05a40e3bfd7e5e72, there is no need to use messages map to iterate over all indexed commits. --- .../com/intellij/vcs/log/data/index/IndexDataGetter.java | 8 +------- .../impl/src/com/intellij/vcs/log/util/PersistentSet.java | 3 +++ .../src/com/intellij/vcs/log/util/PersistentSetImpl.java | 6 ++++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexDataGetter.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexDataGetter.java index 74b49f4c9d45..8c987275c077 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexDataGetter.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/index/IndexDataGetter.java @@ -25,7 +25,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.Processor; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.StorageException; -import com.intellij.util.io.PersistentHashMap; import com.intellij.util.io.PersistentMap; import com.intellij.vcs.log.*; import com.intellij.vcs.log.data.VcsLogStorage; @@ -234,12 +233,7 @@ public class IndexDataGetter { } return true; }; - if (myIndexStorage.messages instanceof PersistentHashMap) { - ((PersistentHashMap)myIndexStorage.messages).processKeysWithExistingMapping(processor); - } - else { - myIndexStorage.messages.processKeys(processor); - } + myIndexStorage.commits.process(processor); return result; }, result); } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSet.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSet.java index 4ca9a3ca4b1d..edc4e785ef09 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSet.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSet.java @@ -15,6 +15,7 @@ */ package com.intellij.vcs.log.util; +import com.intellij.util.Processor; import org.jetbrains.annotations.NotNull; import java.io.IOException; @@ -25,6 +26,8 @@ public interface PersistentSet { void put(@NotNull T element) throws IOException; + void process(@NotNull Processor processor) throws IOException; + void flush(); void markCorrupted(); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSetImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSetImpl.java index a1d9f7078bcb..d81b4ce75178 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSetImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/util/PersistentSetImpl.java @@ -15,6 +15,7 @@ */ package com.intellij.vcs.log.util; +import com.intellij.util.Processor; import com.intellij.util.io.KeyDescriptor; import com.intellij.util.io.PagedFileStorage; import com.intellij.util.io.PersistentBTreeEnumerator; @@ -43,6 +44,11 @@ public class PersistentSetImpl extends PersistentBTreeEnumerator implement enumerate(element); } + @Override + public void process(@NotNull Processor processor) throws IOException { + processAllDataObject(processor, null); + } + @Override public void flush() { force();