From f774ed3e606f958097b40e5feb94d09a4449a767 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 16 Apr 2014 20:30:36 +0200 Subject: [PATCH] dfa: reuse free eq class indices --- .../codeInspection/dataFlow/DfaMemoryStateImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java index 6f374b1f5d95..c2da3fbf722d 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaMemoryStateImpl.java @@ -263,8 +263,14 @@ public class DfaMemoryStateImpl implements DfaMemoryState { } EqClass aClass = new EqClass(myFactory); aClass.add(dfaValue.getID()); - myEqClasses.add(aClass); + int freeIndex = myEqClasses.indexOf(null); + if (freeIndex >= 0) { + myEqClasses.set(freeIndex, aClass); + return freeIndex; + } + + myEqClasses.add(aClass); return myEqClasses.size() - 1; }