drop caches more often

This commit is contained in:
anna
2010-08-10 17:08:16 +04:00
parent c7ea1c0ab4
commit d2e81ddadf
3 changed files with 12 additions and 0 deletions

View File

@@ -173,6 +173,7 @@ public class RefClassImpl extends RefJavaElementImpl implements RefClass {
final PsiClass applet = getRefJavaManager().getApplet();
setApplet(applet != null && psiClass.isInheritor(applet, true));
getRefManager().fireNodeInitialized(this);
getRefManager().getPsiManager().dropResolveCaches();
}
private void initializeSuperReferences(PsiClass psiClass) {

View File

@@ -20,6 +20,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiManager;
import org.jdom.Element;
import org.jetbrains.annotations.Nullable;
@@ -108,4 +109,6 @@ public abstract class RefManager {
public abstract String getQualifiedName(RefEntity refEntity);
public abstract void removeRefElement(RefElement refElement, List<RefElement> deletedRefs);
public abstract PsiManager getPsiManager();
}

View File

@@ -67,6 +67,7 @@ public class RefManagerImpl extends RefManager {
private THashMap<Module, RefModule> myModules;
private final ProjectIterator myProjectIterator;
private boolean myDeclarationsFound;
private final PsiManager myPsiManager;
private boolean myIsInProcess = false;
@@ -83,6 +84,7 @@ public class RefManagerImpl extends RefManager {
myProject = project;
myScope = scope;
myContext = context;
myPsiManager = PsiManager.getInstance(project);
myRefProject = new RefProjectImpl(this);
myRefTable = new THashMap<PsiAnchor, RefElement>();
myProjectIterator = new ProjectIterator();
@@ -298,6 +300,11 @@ public class RefManagerImpl extends RefManager {
return myRefTable;
}
@Override
public PsiManager getPsiManager() {
return myPsiManager;
}
public void removeReference(RefElement refElem) {
myLock.writeLock().lock();
try {
@@ -366,6 +373,7 @@ public class RefManagerImpl extends RefManager {
for (Language language : relevantLanguages) {
visitElement(viewProvider.getPsi(language));
}
myPsiManager.dropResolveCaches();
}
}