mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
use new forward index in javac indices
This commit is contained in:
+5
-11
@@ -12,6 +12,8 @@ import com.intellij.util.indexing.IndexExtension;
|
||||
import com.intellij.util.indexing.IndexId;
|
||||
import com.intellij.util.indexing.InvertedIndex;
|
||||
import com.intellij.util.indexing.impl.*;
|
||||
import com.intellij.util.indexing.impl.forward.KeyCollectionForwardIndexAccessor;
|
||||
import com.intellij.util.indexing.impl.forward.PersistentMapBasedForwardIndex;
|
||||
import com.intellij.util.io.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jps.backwardRefs.NameEnumerator;
|
||||
@@ -198,6 +200,7 @@ public class CompilerReferenceIndex<Input> {
|
||||
|
||||
public void setRebuildRequestCause(Throwable e) {
|
||||
myRebuildRequestCause = e;
|
||||
LOG.error(e);
|
||||
}
|
||||
|
||||
private static void close(InvertedIndex<?, ?, ?> index, CommonProcessors.FindFirstProcessor<Exception> exceptionProcessor) {
|
||||
@@ -231,17 +234,8 @@ public class CompilerReferenceIndex<Input> {
|
||||
throws IOException {
|
||||
super(extension,
|
||||
createIndexStorage(extension.getKeyDescriptor(), extension.getValueExternalizer(), extension.getName(), indexDir, readOnly),
|
||||
readOnly ? null : new KeyCollectionBasedForwardIndex<Key, Value>(extension) {
|
||||
@NotNull
|
||||
@Override
|
||||
public PersistentHashMap<Integer, Collection<Key>> createMap() throws IOException {
|
||||
IndexId<Key, Value> id = getIndexExtension().getName();
|
||||
return new PersistentHashMap<>(new File(indexDir, id.getName() + ".inputs"),
|
||||
EnumeratorIntegerDescriptor.INSTANCE,
|
||||
new InputIndexDataExternalizer<>(extension.getKeyDescriptor(),
|
||||
id));
|
||||
}
|
||||
});
|
||||
readOnly ? null : new PersistentMapBasedForwardIndex(new File(indexDir, extension.getName().getName() + ".inputs")),
|
||||
readOnly ? null : new KeyCollectionForwardIndexAccessor<>(extension));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-1
@@ -4,6 +4,7 @@ package com.intellij.util.indexing.impl.forward;
|
||||
import com.intellij.openapi.util.ThreadLocalCachedByteArray;
|
||||
import com.intellij.openapi.util.io.BufferExposingByteArrayOutputStream;
|
||||
import com.intellij.openapi.util.io.ByteArraySequence;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.indexing.impl.InputDataDiffBuilder;
|
||||
import com.intellij.util.io.DataExternalizer;
|
||||
import com.intellij.util.io.DataOutputStream;
|
||||
@@ -38,7 +39,7 @@ public abstract class AbstractForwardIndexAccessor<Key, Value, DataType, Input>
|
||||
@Nullable
|
||||
@Override
|
||||
public ByteArraySequence serializeIndexedData(@Nullable Map<Key, Value> map, @Nullable Input content) throws IOException {
|
||||
if (map == null) return null;
|
||||
if (ContainerUtil.isEmpty(map)) return null;
|
||||
return serializeToByteSeq(convertToDataType(map, content), myDataTypeExternalizer, map.size());
|
||||
}
|
||||
|
||||
|
||||
+5
@@ -2,6 +2,7 @@
|
||||
package com.intellij.util.indexing.impl.forward;
|
||||
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.indexing.IndexExtension;
|
||||
import com.intellij.util.indexing.IndexId;
|
||||
import com.intellij.util.indexing.impl.CollectionInputDataDiffBuilder;
|
||||
import com.intellij.util.indexing.impl.InputDataDiffBuilder;
|
||||
@@ -21,6 +22,10 @@ public class KeyCollectionForwardIndexAccessor<Key, Value, Input> extends Abstra
|
||||
super(externalizer);
|
||||
}
|
||||
|
||||
public KeyCollectionForwardIndexAccessor(@NotNull IndexExtension<Key, Value, Input> extension) {
|
||||
this(extension.getKeyDescriptor(), extension.getName());
|
||||
}
|
||||
|
||||
public KeyCollectionForwardIndexAccessor(@NotNull KeyDescriptor<Key> externalizer, @NotNull IndexId<Key, Value> indexId) {
|
||||
super(new InputIndexDataExternalizer<>(externalizer, indexId));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user