[vcs-log] iterate over commits persistent set during filtering by index

Since commits map was introduced in 32e141ef1b, there is no need to use messages map to iterate over all indexed commits.
This commit is contained in:
Julia Beliaeva
2018-07-09 22:18:02 +03:00
parent 212b4d313a
commit d1f6e0e2be
3 changed files with 10 additions and 7 deletions
@@ -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<Integer, T>)myIndexStorage.messages).processKeysWithExistingMapping(processor);
}
else {
myIndexStorage.messages.processKeys(processor);
}
myIndexStorage.commits.process(processor);
return result;
}, result);
}
@@ -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<T> {
void put(@NotNull T element) throws IOException;
void process(@NotNull Processor<T> processor) throws IOException;
void flush();
void markCorrupted();
@@ -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<T> extends PersistentBTreeEnumerator<T> implement
enumerate(element);
}
@Override
public void process(@NotNull Processor<T> processor) throws IOException {
processAllDataObject(processor, null);
}
@Override
public void flush() {
force();