Remove unnecessary sinchronization.

This commit is contained in:
Sergey Evdokimov
2010-09-06 17:40:14 +04:00
parent 0b4d653899
commit 0296544129
3 changed files with 20 additions and 11 deletions
@@ -42,13 +42,13 @@ import java.util.List;
*/
public class LightMethodBuilder extends LightElement implements PsiMethod {
private final String myName;
private volatile Computable<PsiType> myReturnType;
private Computable<PsiType> myReturnType;
private final LightModifierList myModifierList;
private volatile LightParameterListBuilder myParameterList;
private volatile Icon myBaseIcon;
private volatile PsiClass myContainingClass;
private volatile boolean myConstructor;
private volatile String myMethodKind = "LightMethodBuilder";
private LightParameterListBuilder myParameterList;
private Icon myBaseIcon;
private PsiClass myContainingClass;
private boolean myConstructor;
private String myMethodKind = "LightMethodBuilder";
public LightMethodBuilder(PsiClass constructedClass) {
this(constructedClass.getManager(), constructedClass.getName());
@@ -23,7 +23,6 @@ import com.intellij.util.containers.CollectionFactory;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.Set;
public class LightModifierList extends LightElement implements PsiModifierList{
@@ -35,7 +34,7 @@ public class LightModifierList extends LightElement implements PsiModifierList{
public LightModifierList(PsiManager manager, final Language language, String... modifiers){
super(manager, language);
myModifiers = Collections.synchronizedSet(CollectionFactory.newTroveSet(modifiers));
myModifiers = CollectionFactory.newTroveSet(modifiers);
}
public void addModifier(String modifier) {
@@ -5,14 +5,14 @@ import com.intellij.psi.*;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* @author peter
*/
public class LightParameterListBuilder extends LightElement implements PsiParameterList {
private final List<PsiParameter> myParameters = Collections.synchronizedList(new ArrayList<PsiParameter>());
private final List<PsiParameter> myParameters = new ArrayList<PsiParameter>();
private PsiParameter[] myCachedParameters;
public LightParameterListBuilder(PsiManager manager, Language language) {
super(manager, language);
@@ -20,6 +20,7 @@ public class LightParameterListBuilder extends LightElement implements PsiParame
public void addParameter(PsiParameter parameter) {
myParameters.add(parameter);
myCachedParameters = null;
}
@Override
@@ -30,7 +31,16 @@ public class LightParameterListBuilder extends LightElement implements PsiParame
@NotNull
@Override
public PsiParameter[] getParameters() {
return myParameters.toArray(new PsiParameter[myParameters.size()]);
if (myCachedParameters == null) {
if (myParameters.isEmpty()) {
myCachedParameters = PsiParameter.EMPTY_ARRAY;
}
else {
myCachedParameters = myParameters.toArray(new PsiParameter[myParameters.size()]);
}
}
return myCachedParameters;
}
@Override