Attempt to fix issue #1048.
NOTE: this did not actually fix the issue and was rolled back in r1085.
Patch by: tobyr
Review by: mmendez, scottb (reverted)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1074 8db76d5a-ed1c-0410-87a9-c151d255dfc7
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 984b31f..b679e39 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
@@ -425,10 +425,10 @@
public boolean visit(JNewArray newArray, Context ctx) {
// rescue and instantiate the array type
JArrayType arrayType = newArray.getArrayType();
+ JType leafType = arrayType.getLeafType();
if (newArray.dims != null) {
// rescue my type and all the implicitly nested types (with fewer dims)
int nDims = arrayType.getDims();
- JType leafType = arrayType.getLeafType();
assert (newArray.dims.size() == nDims);
for (int i = 0; i < nDims; ++i) {
if (newArray.dims.get(i) instanceof JAbsentArrayDimension) {
@@ -441,6 +441,11 @@
rescue(arrayType, true, true);
}
+ // Rescue the array's base element type for reference types
+ if (leafType instanceof JReferenceType) {
+ rescue((JReferenceType) leafType, true, false);
+ }
+
// also rescue and instantiate the "base" array type
rescue(program.getSpecialArray(), true, true);
return true;