Added #1496 repeat escape sequence \{xx}C to avoid long same char strings/names

This commit is contained in:
Jindra Petřík
2021-11-19 13:03:23 +01:00
parent b68b7ff2f0
commit bbb3ed8c72
21 changed files with 4224 additions and 3937 deletions
@@ -282,7 +282,7 @@ public class AVM2Instruction implements Cloneable, GraphSourceItem {
s.append(" null");
} else {
s.append(" \"");
s.append(Helper.escapeActionScriptString(str));
s.append(Helper.escapePCodeString(str));
s.append("\"");
}
break;
File diff suppressed because it is too large Load Diff
@@ -263,7 +263,7 @@ public class Multiname {
break;
}
}
return constants.getNamespace(index).getKindStr() + "(" + (name == null ? "null" : "\"" + Helper.escapeActionScriptString(name) + "\"") + (sub > 0 ? ",\"" + sub + "\"" : "") + ")";
return constants.getNamespace(index).getKindStr() + "(" + (name == null ? "null" : "\"" + Helper.escapePCodeString(name) + "\"") + (sub > 0 ? ",\"" + sub + "\"" : "") + ")";
}
private static String namespaceSetToString(AVM2ConstantPool constants, int index) {
@@ -295,16 +295,16 @@ public class Multiname {
switch (kind) {
case QNAME:
case QNAMEA:
return getKindStr() + "(" + namespaceToString(constants, namespace_index) + "," + (name_index == 0 ? "null" : "\"" + Helper.escapeActionScriptString(constants.getString(name_index)) + "\"") + ")";
return getKindStr() + "(" + namespaceToString(constants, namespace_index) + "," + (name_index == 0 ? "null" : "\"" + Helper.escapePCodeString(constants.getString(name_index)) + "\"") + ")";
case RTQNAME:
case RTQNAMEA:
return getKindStr() + "(" + (name_index == 0 ? "null" : "\"" + Helper.escapeActionScriptString(constants.getString(name_index))) + "\"" + ")";
return getKindStr() + "(" + (name_index == 0 ? "null" : "\"" + Helper.escapePCodeString(constants.getString(name_index))) + "\"" + ")";
case RTQNAMEL:
case RTQNAMELA:
return getKindStr() + "()";
case MULTINAME:
case MULTINAMEA:
return getKindStr() + "(" + (name_index == 0 ? "null" : "\"" + Helper.escapeActionScriptString(constants.getString(name_index)) + "\"") + "," + namespaceSetToString(constants, namespace_set_index) + ")";
return getKindStr() + "(" + (name_index == 0 ? "null" : "\"" + Helper.escapePCodeString(constants.getString(name_index)) + "\"") + "," + namespaceSetToString(constants, namespace_set_index) + ")";
case MULTINAMEL:
case MULTINAMELA:
return getKindStr() + "(" + namespaceSetToString(constants, namespace_set_index) + ")";
@@ -185,7 +185,7 @@ public class ValueKind {
ret = "Decimal(" + constants.getDecimal(value_index) + ")";
break;
case CONSTANT_Utf8:
ret = "Utf8(\"" + Helper.escapeActionScriptString(constants.getString(value_index)) + "\")";
ret = "Utf8(\"" + Helper.escapePCodeString(constants.getString(value_index)) + "\")";
break;
case CONSTANT_True:
ret = "True()";
@@ -405,7 +405,7 @@ public abstract class Trait implements Cloneable, Serializable {
for (int m : metadata) {
writer.append("metadata");
writer.append("\"");
writer.append(Helper.escapeActionScriptString(abc.constants.getString(abc.metadata_info.get(m).name_index)));
writer.append(Helper.escapePCodeString(abc.constants.getString(abc.metadata_info.get(m).name_index)));
writer.append("\"");
if (Configuration.indentAs3PCode.get()) {
writer.indent();
@@ -418,13 +418,13 @@ public abstract class Trait implements Cloneable, Serializable {
writer.append("item ");
writer.append("\"");
writer.append(Helper.escapeActionScriptString(abc.constants.getString(key)));
writer.append(Helper.escapePCodeString(abc.constants.getString(key)));
writer.append("\"");
writer.append(" ");
writer.append("\"");
writer.append(Helper.escapeActionScriptString(abc.constants.getString(val)));
writer.append(Helper.escapePCodeString(abc.constants.getString(val)));
writer.append("\"");
writer.newLine();
}