This commit is contained in:
Alexey Kudravtsev
2010-08-25 14:37:17 +04:00
parent fb6ea6d10a
commit 182762b362
7 changed files with 17 additions and 19 deletions
@@ -16,11 +16,11 @@
package com.intellij.openapi.actionSystem;
import com.intellij.openapi.util.Pair;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* A default implementation of {@link ActionGroup}. Provides the ability
@@ -36,11 +36,11 @@ public class DefaultActionGroup extends ActionGroup {
/**
* Contains instances of AnAction
*/
private final List<AnAction> mySortedChildren = new CopyOnWriteArrayList<AnAction>();
private final List<AnAction> mySortedChildren = ContainerUtil.createEmptyCOWList();
/**
* Contains instances of Pair
*/
private final List<Pair<AnAction,Constraints>> myPairs = new CopyOnWriteArrayList<Pair<AnAction, Constraints>>();
private final List<Pair<AnAction,Constraints>> myPairs = ContainerUtil.createEmptyCOWList();
public DefaultActionGroup(){
this(null, false);
@@ -26,13 +26,13 @@ import com.intellij.openapi.util.RoamingTypeDisabled;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.util.concurrency.JBReentrantReadWriteLock;
import com.intellij.util.concurrency.LockFactory;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.HashMap;
import org.jdom.Element;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author dsl
@@ -42,7 +42,7 @@ public class PathMacrosImpl extends PathMacros implements ApplicationComponent,
private final Map<String,String> myLegacyMacros = new HashMap<String,String>();
private final Map<String,String> myMacros = new HashMap<String, String>();
private final JBReentrantReadWriteLock myLock = LockFactory.createReadWriteLock();
private final List<String> myIgnoredMacros = new CopyOnWriteArrayList<String>();
private final List<String> myIgnoredMacros = ContainerUtil.createEmptyCOWList();
@NonNls
public static final String MACRO_ELEMENT = "macro";
@@ -25,9 +25,10 @@ import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.util.ActionCallback;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.Conditions;
import com.intellij.util.EventDispatcher;
import com.intellij.util.ArrayUtil;
import com.intellij.util.EventDispatcher;
import com.intellij.util.concurrency.Semaphore;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -38,7 +39,6 @@ import java.awt.*;
import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.CopyOnWriteArrayList;
@SuppressWarnings({"SSBasedInspection"})
public class LaterInvocator {
@@ -70,7 +70,7 @@ public class LaterInvocator {
}
}
private static final List<Object> ourModalEntities = new CopyOnWriteArrayList<Object>();
private static final List<Object> ourModalEntities = ContainerUtil.createEmptyCOWList();
private static final List<RunnableInfo> ourQueue = new ArrayList<RunnableInfo>(); //protected by LOCK
private static volatile int ourQueueSkipCount = 0; // optimization
private static final Runnable ourFlushQueueRunnable = new FlushQueue();
@@ -20,10 +20,7 @@ import com.intellij.util.containers.ConcurrentHashSet;
import gnu.trove.TObjectHashingStrategy;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
/**
* @author max
@@ -80,7 +77,7 @@ public class UniqueResultsQuery<T, M> implements Query<T> {
return (Collection<T>)collection;
}
else {
final CommonProcessors.CollectProcessor<T> processor = new CommonProcessors.CollectProcessor<T>(new CopyOnWriteArrayList<T>());
final CommonProcessors.CollectProcessor<T> processor = new CommonProcessors.CollectProcessor<T>(Collections.synchronizedList(new ArrayList<T>()));
forEach(processor);
return processor.getResults();
}
@@ -18,7 +18,6 @@ package com.intellij.util.containers;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author peter
@@ -30,6 +29,6 @@ public class ConcurrentMultiMap<K,V> extends MultiMap<K,V> {
@Override
protected Collection<V> createCollection() {
return new CopyOnWriteArrayList<V>();
return ContainerUtil.createEmptyCOWList();
}
}
@@ -93,7 +93,7 @@ public final class Configuration implements PersistentStateComponent<Element>, M
private final Map<String, List<BaseInjection>> myInjections = new ConcurrentFactoryMap<String, List<BaseInjection>>() {
@Override
protected List<BaseInjection> create(final String key) {
return new CopyOnWriteArrayList<BaseInjection>();
return ContainerUtil.createEmptyCOWList();
}
};
private ArrayList<BaseInjection> myDefaultInjections;
@@ -19,21 +19,23 @@ package org.intellij.plugins.intelliLang.inject;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.*;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiLanguageInjectionHost;
import com.intellij.psi.SmartPointerManager;
import com.intellij.psi.SmartPsiElementPointer;
import com.intellij.util.PairProcessor;
import com.intellij.util.containers.ContainerUtil;
import org.intellij.plugins.intelliLang.Configuration;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author Gregory.Shrago
*/
public class TemporaryPlacesRegistry {
private final Project myProject;
private final List<TemporaryPlace> myTempPlaces = new CopyOnWriteArrayList<TemporaryPlace>();
private final List<TemporaryPlace> myTempPlaces = ContainerUtil.createEmptyCOWList();
public static TemporaryPlacesRegistry getInstance(final Project project) {
return ServiceManager.getService(project, TemporaryPlacesRegistry.class);