For compatibility with linkers that don't yet understand soft
permutations, don't add a ":0" to the strong name of soft
permutation number 0.
Review at http://gwt-code-reviews.appspot.com/353801
Review by: jat@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@7925 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java b/dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java
index cb62803..b241738 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/SelectionScriptLinker.java
@@ -362,12 +362,14 @@
} else if (propMapsByPermutation.size() == 1) {
// Just one distinct compilation; no need to evaluate properties
text.append("strongName = '"
- + propMapsByPermutation.keySet().iterator().next() + "';");
+ + propMapsByPermutation.keySet().iterator().next().getStrongName()
+ + "';");
} else {
Set<String> propertiesUsed = new HashSet<String>();
for (PermutationId permutationId : propMapsByPermutation.keySet()) {
for (Map<String, String> propertyMap : propMapsByPermutation.get(permutationId)) {
// unflatten([v1, v2, v3], 'strongName' + ':softPermId');
+ // The soft perm ID is concatenated to improve string interning
text.append("unflattenKeylistIntoAnswers([");
boolean needsComma = false;
for (SelectionProperty p : context.getProperties()) {
@@ -386,10 +388,17 @@
propertiesUsed.add(p.getName());
}
- // Concatenate the soft permutation id to improve string interning
text.append("], '").append(permutationId.getStrongName()).append(
- "' + ':").append(permutationId.getSoftPermutationId()).append(
- "');\n");
+ "'");
+ /*
+ * For compatibility with older linkers, skip the soft permutation
+ * if it's 0
+ */
+ if (permutationId.getSoftPermutationId() != 0) {
+ text.append(" + ':").append(permutationId.getSoftPermutationId()).append(
+ "'");
+ }
+ text.append(");\n");
}
}