From e9686b5b306a4efcf0766f0473803b7958fc782f Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 23 Mar 2012 12:33:08 +0100 Subject: [PATCH] gc'able AST for changed files --- java/java-tests/testSrc/com/intellij/psi/AstLeaksTest.groovy | 2 +- .../src/com/intellij/psi/impl/source/PsiFileImpl.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/java/java-tests/testSrc/com/intellij/psi/AstLeaksTest.groovy b/java/java-tests/testSrc/com/intellij/psi/AstLeaksTest.groovy index eafeaf0e3897..a028baf02ca1 100644 --- a/java/java-tests/testSrc/com/intellij/psi/AstLeaksTest.groovy +++ b/java/java-tests/testSrc/com/intellij/psi/AstLeaksTest.groovy @@ -29,7 +29,7 @@ import com.intellij.codeInspection.defaultFileTemplateUsage.DefaultFileTemplateU */ class AstLeaksTest extends LightCodeInsightFixtureTestCase { - public void "_test AST should be on a soft reference, for changed files as well"() { + public void "test AST should be on a soft reference, for changed files as well"() { def file = myFixture.addClass('class Foo {}').containingFile assert file.findElementAt(0) instanceof PsiKeyword LeakHunter.checkLeak(file, JavaFileElement) diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java index b7e395dcc6ce..347786657d07 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java @@ -129,7 +129,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF public FileElement getTreeElementNoLock() { ASTNode node = _getTreeElement(); if (node == null && !getViewProvider().isPhysical()) { - setTreeElement(node = loadTreeElement()); + node = loadTreeElement(); } return (FileElement)node; } @@ -400,7 +400,6 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF private void doClearCaches() { final FileElement tree = getTreeElement(); if (tree != null) { - myTreeElementPointer = tree; tree.clearCaches(); }