From 56a0f9666166391355b317d2c30968f28bb88b7f Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Wed, 15 Jul 2015 10:27:34 +0200 Subject: [PATCH] some new string builders --- .../flash/abc/types/MethodInfo.java | 33 ++++++++++--------- .../decompiler/flash/abc/types/Multiname.java | 17 +++++----- .../flash/generators/AS3Generator.java | 8 ++--- .../flash/gui/abc/DecompiledEditorPane.java | 8 ++--- .../decompiler/flash/gui/abc/DetailPanel.java | 3 +- .../flash/gui/abc/TraitsListItem.java | 4 +-- .../abc/tablemodels/MultinameTableModel.java | 3 +- 7 files changed, 38 insertions(+), 38 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java index 2756f6f1f..b389ab2f5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java @@ -251,42 +251,43 @@ public class MethodInfo { } public String toString(AVM2ConstantPool constants, List fullyQualifiedNames) { - String optionalStr = "["; + StringBuilder optionalStr = new StringBuilder(); + optionalStr.append("["); if (optional != null) { for (int i = 0; i < optional.length; i++) { if (i > 0) { - optionalStr += ","; + optionalStr.append(","); } - optionalStr += optional[i].toString(constants); + optionalStr.append(optional[i].toString(constants)); } } - optionalStr += "]"; + optionalStr.append("]"); - String param_typesStr = ""; + StringBuilder param_typesStr = new StringBuilder(); for (int i = 0; i < param_types.length; i++) { if (i > 0) { - param_typesStr += ","; + param_typesStr.append(","); } if (param_types[i] == 0) { - param_typesStr += "*"; + param_typesStr.append("*"); } else { - param_typesStr += constants.getMultiname(param_types[i]).toString(constants, fullyQualifiedNames); + param_typesStr.append(constants.getMultiname(param_types[i]).toString(constants, fullyQualifiedNames)); } } - String paramNamesStr = ""; + StringBuilder paramNamesStr = new StringBuilder(); for (int i = 0; i < paramNames.length; i++) { if (i > 0) { - paramNamesStr += ","; + paramNamesStr.append(","); } - paramNamesStr += constants.getString(paramNames[i]); + paramNamesStr.append(constants.getString(paramNames[i])); } - String ret_typeStr = ""; + String ret_typeStr; if (ret_type == 0) { - ret_typeStr += "*"; + ret_typeStr = "*"; } else { - ret_typeStr += constants.getMultiname(ret_type).toString(constants, fullyQualifiedNames); + ret_typeStr = constants.getMultiname(ret_type).toString(constants, fullyQualifiedNames); } return "param_types=" + param_typesStr + " ret_type=" + ret_typeStr + " name=\"" + constants.getString(name_index) + "\" flags=" + flags + " optional=" + optionalStr + " paramNames=" + paramNamesStr; @@ -325,7 +326,7 @@ public class MethodInfo { writer.hilightSpecial(IdentifiersDeobfuscation.printIdentifier(true, constants.getString(paramNames[i])), HighlightSpecialType.PARAM_NAME, i, pdata); } else { pdata.localName = "param" + (i + 1); - writer.hilightSpecial("param" + (i + 1), HighlightSpecialType.PARAM_NAME, i, pdata); + writer.hilightSpecial(pdata.localName, HighlightSpecialType.PARAM_NAME, i, pdata); } writer.appendNoHilight(":"); if (param_types[i] == 0) { @@ -344,7 +345,7 @@ public class MethodInfo { if (flagNeed_rest()) { String restAdd = ""; if ((param_types != null) && (param_types.length > 0)) { - restAdd += ", "; + restAdd = ", "; } restAdd += "... "; String restName; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java index e770a2cc4..50a270658 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java @@ -264,22 +264,23 @@ public class Multiname { if (constants.getMultiname(qname_index).name_index == name_index) { return "ambiguousTypeName"; } - String typeNameStr = constants.getMultiname(qname_index).getName(constants, fullyQualifiedNames, raw); + StringBuilder typeNameStr = new StringBuilder() + typeNameStr.append(constants.getMultiname(qname_index).getName(constants, fullyQualifiedNames, raw)); if (!params.isEmpty()) { - typeNameStr += ".<"; + typeNameStr.append(".<"); for (int i = 0; i < params.size(); i++) { if (i > 0) { - typeNameStr += ","; + typeNameStr.append(","); } if (params.get(i) == 0) { - typeNameStr += "*"; + typeNameStr.append("*"); } else { - typeNameStr += constants.getMultiname(params.get(i)).getName(constants, fullyQualifiedNames, raw); + typeNameStr.append(constants.getMultiname(params.get(i)).getName(constants, fullyQualifiedNames, raw)); } } - typeNameStr += ">"; + typeNameStr.append(">"); } - return typeNameStr; + return typeNameStr.toString(); } public String getName(AVM2ConstantPool constants, List fullyQualifiedNames, boolean raw) { @@ -295,7 +296,7 @@ public class Multiname { String name = constants.getString(name_index); if (fullyQualifiedNames != null && fullyQualifiedNames.contains(name)) { DottedChain dc = getNameWithNamespace(constants); - return raw ? dc.toString() : dc.toPrintableString(true); + return raw ? dc.toRawString() : dc.toPrintableString(true); } return (isAttribute() ? "@" : "") + (raw ? name : IdentifiersDeobfuscation.printIdentifier(true, name)); } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java index 677d755b9..7ae192e6f 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/generators/AS3Generator.java @@ -1,16 +1,16 @@ /* * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library. */ @@ -57,7 +57,7 @@ public class AS3Generator { StringBuilder s = new StringBuilder(); for (Trait t : abc.instance_info.get(classId).instance_traits.traits) { if (t instanceof TraitMethodGetterSetter) { - String name = t.getName(abc).getName(abc.constants, new ArrayList<>(), true); + String name = t.getName(abc).getName(abc.constants, null, true); if (name.startsWith("test")) { s.append("@Test\r\npublic void "); s.append(name); diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java index 3781adb8f..54f465f87 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java @@ -351,7 +351,7 @@ public class DecompiledEditorPane extends LineMarkedEditorPane implements CaretL InstanceInfo ii = a.instance_info.get(cindex); for (int j = 0; j < ii.instance_traits.traits.size(); j++) { Trait tr = ii.instance_traits.traits.get(j); - if (ident.equals(tr.getName(a).getName(a.constants, new ArrayList<>(), false /*NOT RAW!*/))) { + if (ident.equals(tr.getName(a).getName(a.constants, null, false /*NOT RAW!*/))) { classIndex.setVal(cindex); abcIndex.setVal(i); traitIndex.setVal(j); @@ -366,7 +366,7 @@ public class DecompiledEditorPane extends LineMarkedEditorPane implements CaretL ClassInfo ci = a.class_info.get(cindex); for (int j = 0; j < ci.static_traits.traits.size(); j++) { Trait tr = ci.static_traits.traits.get(j); - if (ident.equals(tr.getName(a).getName(a.constants, new ArrayList<>(), false /*NOT RAW!*/))) { + if (ident.equals(tr.getName(a).getName(a.constants, null, false /*NOT RAW!*/))) { classIndex.setVal(cindex); abcIndex.setVal(i); traitIndex.setVal(j); @@ -532,7 +532,7 @@ public class DecompiledEditorPane extends LineMarkedEditorPane implements CaretL currentTrait = getCurrentTrait(); isStatic = abc.isStaticTraitId(classIndex, lastTraitIndex); if (currentTrait != null) { - name += ":" + currentTrait.getName(abc).getName(abc.constants, new ArrayList<>(), false); + name += ":" + currentTrait.getName(abc).getName(abc.constants, null, false); } } } @@ -576,7 +576,7 @@ public class DecompiledEditorPane extends LineMarkedEditorPane implements CaretL currentTrait = getCurrentTrait(); isStatic = abc.isStaticTraitId(classIndex, lastTraitIndex); if (currentTrait != null) { - name += ":" + currentTrait.getName(abc).getName(abc.constants, new ArrayList<>(), false); + name += ":" + currentTrait.getName(abc).getName(abc.constants, null, false); } displayMethod(pos, abc.findMethodIdByTraitId(classIndex, lastTraitIndex), name, currentTrait, isStatic); diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java index fdac71150..284035289 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java @@ -28,7 +28,6 @@ import java.awt.CardLayout; import java.awt.FlowLayout; import java.awt.Insets; import java.awt.event.ActionEvent; -import java.util.ArrayList; import java.util.HashMap; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -188,7 +187,7 @@ public class DetailPanel extends JPanel implements TagEditorPanel { traitNameLabel.setText("-"); } else { if (abcPanel != null) { - traitNameLabel.setText(trait.getName(abcPanel.abc).getName(abcPanel.abc.constants, new ArrayList<>(), false)); + traitNameLabel.setText(trait.getName(abcPanel.abc).getName(abcPanel.abc.constants, null, false)); } } } diff --git a/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java b/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java index f866590a6..901325a91 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java @@ -77,9 +77,9 @@ public class TraitsListItem { public String toStringName() { if ((type != Type.INITIALIZER) && isStatic) { - return abc.class_info.get(classIndex).static_traits.traits.get(index).getName(abc).getName(abc.constants, new ArrayList<>(), false); + return abc.class_info.get(classIndex).static_traits.traits.get(index).getName(abc).getName(abc.constants, null, false); } else if ((type != Type.INITIALIZER) && (!isStatic)) { - return abc.instance_info.get(classIndex).instance_traits.traits.get(index).getName(abc).getName(abc.constants, new ArrayList<>(), false); + return abc.instance_info.get(classIndex).instance_traits.traits.get(index).getName(abc).getName(abc.constants, null, false); } else if (!isStatic) { return "__" + STR_INSTANCE_INITIALIZER; } else { diff --git a/src/com/jpexs/decompiler/flash/gui/abc/tablemodels/MultinameTableModel.java b/src/com/jpexs/decompiler/flash/gui/abc/tablemodels/MultinameTableModel.java index c125480e7..e2c61362a 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/tablemodels/MultinameTableModel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/tablemodels/MultinameTableModel.java @@ -17,7 +17,6 @@ package com.jpexs.decompiler.flash.gui.abc.tablemodels; import com.jpexs.decompiler.flash.abc.ABC; -import java.util.ArrayList; import javax.swing.event.TableModelListener; import javax.swing.table.TableModel; @@ -128,7 +127,7 @@ public class MultinameTableModel implements TableModel { if (abc.constants.getMultiname(rowIndex).name_index == -1) { return ""; } - return abc.constants.getMultiname(rowIndex).getName(abc.constants, new ArrayList<>(), true); + return abc.constants.getMultiname(rowIndex).getName(abc.constants, null, true); case 3: if (rowIndex == 0) { return "";