Fix unnecessary expression replacement in Pruner.
Pruner was rewriting the paramters of ALL method calls
instead of only the ones where a paramter was prumed.
Change-Id: I4de2d488dd96aa9312dcae498eec2f20028c9170
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
index 2aa55fd..26f8f9d 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/Pruner.java
@@ -57,6 +57,7 @@
import com.google.gwt.thirdparty.guava.common.base.Predicate;
import com.google.gwt.thirdparty.guava.common.base.Predicates;
import com.google.gwt.thirdparty.guava.common.collect.ArrayListMultimap;
+import com.google.gwt.thirdparty.guava.common.collect.ImmutableList;
import com.google.gwt.thirdparty.guava.common.collect.Iterables;
import com.google.gwt.thirdparty.guava.common.collect.ListMultimap;
import com.google.gwt.thirdparty.guava.common.collect.Sets;
@@ -452,7 +453,7 @@
return true;
}
- priorParametersByMethod.putAll(x, x.getParams());
+ List<JParameter> originalParameters = ImmutableList.copyOf(x.getParams());
for (int i = 0; i < x.getParams().size(); ++i) {
JParameter param = x.getParams().get(i);
@@ -462,6 +463,11 @@
--i;
}
}
+
+ if (x.getParams().size() != originalParameters.size()) {
+ // Parameters were pruned. record the original parameters for the cleanup pass.
+ priorParametersByMethod.putAll(x, originalParameters);
+ }
}
return true;