remove LighterAst#disposeChildren which leads to inefficiencies and possibility of dangling references when multiple indices use the same AST

This commit is contained in:
peter
2016-12-02 14:38:19 +01:00
parent 23cdae45fb
commit eb6fa1f0a1
3 changed files with 0 additions and 18 deletions
@@ -57,18 +57,6 @@ public class FCTSBackedLighterAST extends LighterAST {
return new LighterASTNodeList(numKids, elements);
}
@Override
public void disposeChildren(@NotNull List<LighterASTNode> children) {
if (children instanceof LighterASTNodeList) {
LighterASTNodeList nodes = (LighterASTNodeList)children;
myTreeStructure.disposeChildren(nodes.myElements, nodes.mySize);
}
else {
LighterASTNode[] astNodes = new LighterASTNode[children.size()];
myTreeStructure.disposeChildren(children.toArray(astNodes), astNodes.length);
}
}
private static class LighterASTNodeList extends AbstractList<LighterASTNode> {
private final int mySize;
private final LighterASTNode[] myElements;
@@ -44,7 +44,4 @@ public abstract class LighterAST {
@NotNull
public abstract List<LighterASTNode> getChildren(@NotNull final LighterASTNode parent);
public abstract void disposeChildren(@NotNull List<LighterASTNode> children);
}
@@ -55,9 +55,6 @@ public class TreeBackedLighterAST extends LighterAST {
return result;
}
public void disposeChildren(@NotNull List<LighterASTNode> children) {
}
@NotNull
public static LighterASTNode wrap(@NotNull ASTNode node) {
return node.getFirstChildNode() == null && node.getTextLength() > 0 ? new TokenNodeWrapper(node) : new NodeWrapper(node);