style: use character instead of string, for better performance (PR #503)
This commit is contained in:
@@ -90,7 +90,7 @@ public class JCommanderWrapper<T> {
|
||||
if (fieldType == int.class) {
|
||||
try {
|
||||
int val = f.getInt(args);
|
||||
opt.append(" (default: ").append(val).append(")");
|
||||
opt.append(" (default: ").append(val).append(')');
|
||||
} catch (Exception e) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
@@ -57,6 +57,6 @@ public final class CodePosition {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return line + ":" + offset + (node != null ? " " + node : "");
|
||||
return line + ':' + offset + (node != null ? " " + node : "");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ public class JadxArgsValidator {
|
||||
if (pos != -1) {
|
||||
outDirName = name.substring(0, pos);
|
||||
} else {
|
||||
outDirName = name + "-" + JadxArgs.DEFAULT_OUT_DIR;
|
||||
outDirName = name + '-' + JadxArgs.DEFAULT_OUT_DIR;
|
||||
}
|
||||
LOG.info("output directory: {}", outDirName);
|
||||
outDir = new File(outDirName);
|
||||
|
||||
@@ -21,7 +21,7 @@ public final class JavaField implements JavaNode {
|
||||
|
||||
@Override
|
||||
public String getFullName() {
|
||||
return parent.getFullName() + "." + getName();
|
||||
return parent.getFullName() + '.' + getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -70,6 +70,6 @@ public class ResourceFile {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ResourceFile{name='" + name + '\'' + ", type=" + type + "}";
|
||||
return "ResourceFile{name='" + name + '\'' + ", type=" + type + '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@ public class ClsSet {
|
||||
} else if (outputName.endsWith(".jar")) {
|
||||
ZipOutputStream out = new ZipOutputStream(outputStream);
|
||||
try {
|
||||
out.putNextEntry(new ZipEntry(CLST_PKG_PATH + "/" + CLST_FILENAME));
|
||||
out.putNextEntry(new ZipEntry(CLST_PKG_PATH + '/' + CLST_FILENAME));
|
||||
save(out);
|
||||
} finally {
|
||||
close(out);
|
||||
|
||||
@@ -164,7 +164,7 @@ public class AnnotationGen {
|
||||
formatAnnotation(code, (Annotation) val);
|
||||
} else {
|
||||
// TODO: also can be method values
|
||||
throw new JadxRuntimeException("Can't decode value: " + val + " (" + val.getClass() + ")");
|
||||
throw new JadxRuntimeException("Can't decode value: " + val + " (" + val.getClass() + ')');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -535,7 +535,7 @@ public class ClassGen {
|
||||
&& importCls.getShortName().equals(shortName)) {
|
||||
if (extClsInfo.isInner()) {
|
||||
String parent = useClassInternal(useCls, extClsInfo.getParentClass().getAlias());
|
||||
return parent + "." + shortName;
|
||||
return parent + '.' + shortName;
|
||||
} else {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
@@ -509,12 +509,12 @@ public class InsnGen {
|
||||
case PHI:
|
||||
case MERGE:
|
||||
fallbackOnlyInsn(insn);
|
||||
code.add(insn.getType().toString()).add("(");
|
||||
code.add(insn.getType().toString()).add('(');
|
||||
for (InsnArg insnArg : insn.getArguments()) {
|
||||
addArg(code, insnArg);
|
||||
code.add(' ');
|
||||
}
|
||||
code.add(")");
|
||||
code.add(')');
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -175,9 +175,9 @@ public class MethodGen {
|
||||
|
||||
code.startLine("throw new UnsupportedOperationException(\"Method not decompiled: ")
|
||||
.add(clsAlias.makeFullClsName(clsAlias.getShortName(), true))
|
||||
.add(".")
|
||||
.add('.')
|
||||
.add(mth.getAlias())
|
||||
.add("(")
|
||||
.add('(')
|
||||
.add(Utils.listToString(mth.getMethodInfo().getArgumentsTypes()))
|
||||
.add("):")
|
||||
.add(mth.getMethodInfo().getReturnType().toString())
|
||||
@@ -219,7 +219,7 @@ public class MethodGen {
|
||||
}
|
||||
if (addLabels && (insn.contains(AType.JUMP) || insn.contains(AType.EXC_HANDLER))) {
|
||||
code.decIndent();
|
||||
code.startLine(getLabelName(insn.getOffset()) + ":");
|
||||
code.startLine(getLabelName(insn.getOffset()) + ':');
|
||||
code.incIndent();
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -109,7 +109,7 @@ public class NameGen {
|
||||
String name = arg.getName();
|
||||
String varName = name != null ? name : guessName(arg);
|
||||
if (NameMapper.isReserved(varName)) {
|
||||
return varName + "R";
|
||||
return varName + 'R';
|
||||
}
|
||||
return varName;
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ public class TypeGen {
|
||||
}
|
||||
String str = Long.toString(l);
|
||||
if (Math.abs(l) >= Integer.MAX_VALUE) {
|
||||
str += "L";
|
||||
str += 'L';
|
||||
}
|
||||
return str;
|
||||
}
|
||||
@@ -152,7 +152,7 @@ public class TypeGen {
|
||||
if (d == Double.MIN_NORMAL) {
|
||||
return "Double.MIN_NORMAL";
|
||||
}
|
||||
return Double.toString(d) + "d";
|
||||
return Double.toString(d) + 'd';
|
||||
}
|
||||
|
||||
public static String formatFloat(float f) {
|
||||
@@ -174,6 +174,6 @@ public class TypeGen {
|
||||
if (f == Float.MIN_NORMAL) {
|
||||
return "Float.MIN_NORMAL";
|
||||
}
|
||||
return Float.toString(f) + "f";
|
||||
return Float.toString(f) + 'f';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -394,7 +394,7 @@ public class Deobfuscator {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
ClassNode otherCls = cls.dex().root().searchClassByName(cls.getPackage() + "." + name);
|
||||
ClassNode otherCls = cls.dex().root().searchClassByName(cls.getPackage() + '.' + name);
|
||||
if (otherCls != null) {
|
||||
return null;
|
||||
}
|
||||
@@ -484,7 +484,7 @@ public class Deobfuscator {
|
||||
|
||||
private String prepareNamePart(String name) {
|
||||
if (name.length() > maxLength) {
|
||||
return "x" + Integer.toHexString(name.hashCode());
|
||||
return 'x' + Integer.toHexString(name.hashCode());
|
||||
}
|
||||
return NameMapper.removeInvalidCharsMiddle(name);
|
||||
}
|
||||
|
||||
@@ -121,6 +121,6 @@ public class AttributeStorage {
|
||||
if (list.isEmpty()) {
|
||||
return "";
|
||||
}
|
||||
return "A:{" + Utils.listToString(list) + "}";
|
||||
return "A:{" + Utils.listToString(list) + '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,6 @@ public class Annotation {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Annotation[" + visibility + ", " + atype + ", " + values + "]";
|
||||
return "Annotation[" + visibility + ", " + atype + ", " + values + ']';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,6 @@ public class EdgeInsnAttr implements IAttribute {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EDGE_INSN: " + start + "->" + end + " " + insn;
|
||||
return "EDGE_INSN: " + start + "->" + end + ' ' + insn;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,6 @@ public class FieldReplaceAttr implements IAttribute {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "REPLACE: " + replaceType + " " + replaceObj;
|
||||
return "REPLACE: " + replaceType + ' ' + replaceObj;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public class JadxError {
|
||||
}
|
||||
if (cause != null) {
|
||||
str.append(cause.getClass());
|
||||
str.append(":");
|
||||
str.append(':');
|
||||
str.append(cause.getMessage());
|
||||
str.append("\n");
|
||||
str.append(Utils.getStackTrace(cause));
|
||||
|
||||
@@ -25,7 +25,7 @@ public class PhiListAttr implements IAttribute {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("PHI: ");
|
||||
for (PhiInsn phiInsn : list) {
|
||||
sb.append('r').append(phiInsn.getResult().getRegNum()).append(" ");
|
||||
sb.append('r').append(phiInsn.getResult().getRegNum()).append(' ');
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -203,6 +203,6 @@ public class AccessInfo {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AccessInfo: " + type + " 0x" + Integer.toHexString(accFlags) + " (" + rawString() + ")";
|
||||
return "AccessInfo: " + type + " 0x" + Integer.toHexString(accFlags) + " (" + rawString() + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
|
||||
|
||||
int sep = clsName.lastIndexOf('$');
|
||||
if (canBeInner && sep > 0 && sep != clsName.length() - 1) {
|
||||
String parClsName = pkg + "." + clsName.substring(0, sep);
|
||||
String parClsName = pkg + '.' + clsName.substring(0, sep);
|
||||
if (pkg.isEmpty()) {
|
||||
parClsName = clsName.substring(0, sep);
|
||||
}
|
||||
@@ -110,7 +110,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
|
||||
String innerSep = raw ? "$" : ".";
|
||||
return parentClass.makeFullClsName(parentClass.getShortName(), raw) + innerSep + shortName;
|
||||
}
|
||||
return pkg.isEmpty() ? shortName : pkg + "." + shortName;
|
||||
return pkg.isEmpty() ? shortName : pkg + '.' + shortName;
|
||||
}
|
||||
|
||||
public String makeRawFullName() {
|
||||
@@ -148,7 +148,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
|
||||
if (parentClass == null) {
|
||||
return name;
|
||||
}
|
||||
return parentClass.getNameWithoutPackage() + "." + name;
|
||||
return parentClass.getNameWithoutPackage() + '.' + name;
|
||||
}
|
||||
|
||||
public ClassInfo getParentClass() {
|
||||
|
||||
@@ -54,11 +54,11 @@ public final class FieldInfo {
|
||||
}
|
||||
|
||||
public String getFullId() {
|
||||
return declClass.getFullName() + "." + name + ":" + TypeGen.signature(type);
|
||||
return declClass.getFullName() + '.' + name + ':' + TypeGen.signature(type);
|
||||
}
|
||||
|
||||
public String getRawFullId() {
|
||||
return declClass.makeRawFullName() + "." + name + ":" + TypeGen.signature(type);
|
||||
return declClass.makeRawFullName() + '.' + name + ':' + TypeGen.signature(type);
|
||||
}
|
||||
|
||||
public boolean isRenamed() {
|
||||
@@ -93,6 +93,6 @@ public final class FieldInfo {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return declClass + "." + name + " " + type;
|
||||
return declClass + "." + name + ' ' + type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,15 +65,15 @@ public final class MethodInfo {
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return declClass.getFullName() + "." + name;
|
||||
return declClass.getFullName() + '.' + name;
|
||||
}
|
||||
|
||||
public String getFullId() {
|
||||
return declClass.getFullName() + "." + shortId;
|
||||
return declClass.getFullName() + '.' + shortId;
|
||||
}
|
||||
|
||||
public String getRawFullId() {
|
||||
return declClass.makeRawFullName() + "." + shortId;
|
||||
return declClass.makeRawFullName() + '.' + shortId;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -151,7 +151,7 @@ public final class MethodInfo {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return declClass.getFullName() + "." + name
|
||||
+ "(" + Utils.listToString(args) + "):" + retType;
|
||||
return declClass.getFullName() + '.' + name
|
||||
+ '(' + Utils.listToString(args) + "):" + retType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ public class ArithNode extends InsnNode {
|
||||
return InsnUtils.formatOffset(offset) + ": "
|
||||
+ InsnUtils.insnTypeToString(insnType)
|
||||
+ getResult() + " = "
|
||||
+ getArg(0) + " "
|
||||
+ op.getSymbol() + " "
|
||||
+ getArg(0) + ' '
|
||||
+ op.getSymbol() + ' '
|
||||
+ getArg(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,6 @@ public final class ConstClassNode extends InsnNode {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " " + clsType;
|
||||
return super.toString() + ' ' + clsType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,6 @@ public final class ConstStringNode extends InsnNode {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " \"" + str + "\"";
|
||||
return super.toString() + " \"" + str + '"';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ public class IfNode extends GotoNode {
|
||||
public String toString() {
|
||||
return InsnUtils.formatOffset(offset) + ": "
|
||||
+ InsnUtils.insnTypeToString(insnType)
|
||||
+ getArg(0) + " " + op.getSymbol() + " " + getArg(1)
|
||||
+ getArg(0) + ' ' + op.getSymbol() + ' ' + getArg(1)
|
||||
+ " -> " + (thenBlock != null ? thenBlock : InsnUtils.formatOffset(target));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,6 @@ public class IndexInsnNode extends InsnNode {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " " + InsnUtils.indexToString(index);
|
||||
return super.toString() + ' ' + InsnUtils.indexToString(index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,7 +578,7 @@ public class InsnDecoder {
|
||||
InsnArg.reg(insn, 0, ArgType.UNKNOWN_OBJECT));
|
||||
|
||||
default:
|
||||
throw new DecodeException("Unknown instruction: '" + OpcodeInfo.getName(insn.getOpcode()) + "'");
|
||||
throw new DecodeException("Unknown instruction: '" + OpcodeInfo.getName(insn.getOpcode()) + '\'');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ public class InvokeNode extends InsnNode implements CallMthInterface {
|
||||
+ InsnUtils.insnTypeToString(insnType)
|
||||
+ (getResult() == null ? "" : getResult() + " = ")
|
||||
+ Utils.listToString(getArguments())
|
||||
+ " " + mth
|
||||
+ ' ' + mth
|
||||
+ " type: " + type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ public abstract class ArgType {
|
||||
if (bounds == 0) {
|
||||
return "?";
|
||||
}
|
||||
return "? " + (bounds == -1 ? "super" : "extends") + " " + type;
|
||||
return "? " + (bounds == -1 ? "super" : "extends") + ' ' + type;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ public abstract class ArgType {
|
||||
}
|
||||
|
||||
public GenericObject(GenericObject outerType, String innerName, ArgType[] generics) {
|
||||
super(outerType.getObject() + "$" + innerName);
|
||||
super(outerType.getObject() + '$' + innerName);
|
||||
this.outerType = outerType;
|
||||
this.generics = generics;
|
||||
this.hash = outerType.hashCode() + 31 * innerName.hashCode()
|
||||
@@ -275,7 +275,7 @@ public abstract class ArgType {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + "<" + Utils.arrayToString(generics) + ">";
|
||||
return super.toString() + '<' + Utils.arrayToString(generics) + '>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,7 +389,7 @@ public abstract class ArgType {
|
||||
if (possibleTypes.length == PrimitiveType.values().length) {
|
||||
return "?";
|
||||
} else {
|
||||
return "?" + Arrays.toString(possibleTypes);
|
||||
return '?' + Arrays.toString(possibleTypes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,6 @@ public final class FieldArg extends RegisterArg {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "(" + field + ")";
|
||||
return "(" + field + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,6 @@ public final class InsnWrapArg extends InsnArg {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "(wrap: " + type + "\n " + wrappedInsn + ")";
|
||||
return "(wrap: " + type + "\n " + wrappedInsn + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,10 +69,10 @@ public final class LiteralArg extends InsnArg {
|
||||
if (getType().equals(ArgType.BOOLEAN) && (value.equals("true") || value.equals("false"))) {
|
||||
return value;
|
||||
}
|
||||
return "(" + value + " " + type + ")";
|
||||
return '(' + value + ' ' + type + ')';
|
||||
} catch (JadxRuntimeException ex) {
|
||||
// can't convert literal to string
|
||||
return "(" + literal + " " + type + ")";
|
||||
return "(" + literal + ' ' + type + ')';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,6 @@ public final class NamedArg extends InsnArg implements Named {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "(" + name + " " + type + ")";
|
||||
return '(' + name + ' ' + type + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,17 +169,17 @@ public class RegisterArg extends InsnArg implements Named {
|
||||
sb.append("(r");
|
||||
sb.append(regNum);
|
||||
if (sVar != null) {
|
||||
sb.append("_").append(sVar.getVersion());
|
||||
sb.append('_').append(sVar.getVersion());
|
||||
}
|
||||
if (getName() != null) {
|
||||
sb.append(" '").append(getName()).append("'");
|
||||
sb.append(" '").append(getName()).append('\'');
|
||||
}
|
||||
sb.append(" ");
|
||||
sb.append(' ');
|
||||
sb.append(type);
|
||||
if (!isAttrStorageEmpty()) {
|
||||
sb.append(' ').append(getAttributesString());
|
||||
}
|
||||
sb.append(")");
|
||||
sb.append(')');
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -206,6 +206,6 @@ public class SSAVar extends AttrNode {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "r" + regNum + "_" + version;
|
||||
return "r" + regNum + '_' + version;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,6 +107,6 @@ public class ConstructorInsn extends InsnNode implements CallMthInterface {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " " + callMth + " " + callType;
|
||||
return super.toString() + ' ' + callMth + ' ' + callType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,6 +192,6 @@ public class BlockNode extends AttrNode implements IBlock {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "B:" + id + ":" + InsnUtils.formatOffset(startOffset);
|
||||
return "B:" + id + ':' + InsnUtils.formatOffset(startOffset);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -668,7 +668,7 @@ public class MethodNode extends LineAttrNode implements ILoadable, ICodeNode {
|
||||
@Override
|
||||
public String toString() {
|
||||
return parentClass + "." + mthInfo.getName()
|
||||
+ "(" + Utils.listToString(mthInfo.getArgumentsTypes()) + "):"
|
||||
+ '(' + Utils.listToString(mthInfo.getArgumentsTypes()) + "):"
|
||||
+ retType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,8 +119,8 @@ final class LocalVar {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + " " + (isEnd
|
||||
? "end: " + InsnUtils.formatOffset(startAddr) + "-" + InsnUtils.formatOffset(endAddr)
|
||||
return super.toString() + ' ' + (isEnd
|
||||
? "end: " + InsnUtils.formatOffset(startAddr) + '-' + InsnUtils.formatOffset(endAddr)
|
||||
: "active: " + InsnUtils.formatOffset(startAddr));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public class SignatureParser {
|
||||
// generic type start ('<')
|
||||
String obj = slice();
|
||||
if (!incompleteType) {
|
||||
obj += ";";
|
||||
obj += ';';
|
||||
}
|
||||
ArgType[] genArr = consumeGenericArgs();
|
||||
consume('>');
|
||||
|
||||
@@ -53,6 +53,6 @@ public final class Region extends AbstractRegion {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "R" + baseString();
|
||||
return 'R' + baseString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,6 @@ public final class Compare {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getA() + " " + getOp().getSymbol() + " " + getB();
|
||||
return getA() + " " + getOp().getSymbol() + ' ' + getB();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,7 +224,7 @@ public final class IfCondition {
|
||||
case TERNARY:
|
||||
return first() + " ? " + second() + " : " + third();
|
||||
case NOT:
|
||||
return "!(" + first() + ")";
|
||||
return "!(" + first() + ')';
|
||||
case AND:
|
||||
case OR:
|
||||
String op = mode == Mode.OR ? " || " : " && ";
|
||||
|
||||
@@ -130,6 +130,6 @@ public final class IfRegion extends AbstractRegion implements IBranchRegion {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "IF " + header + " then (" + thenRegion + ") else (" + elseRegion + ")";
|
||||
return "IF " + header + " then (" + thenRegion + ") else (" + elseRegion + ')';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,6 @@ public class ExcHandlerAttr implements IAttribute {
|
||||
public String toString() {
|
||||
return "ExcHandler: " + (handler.isFinally()
|
||||
? " FINALLY"
|
||||
: handler.catchTypeStr() + " " + handler.getArg());
|
||||
: handler.catchTypeStr() + ' ' + handler.getArg());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,8 +162,8 @@ public class CodeShrinker extends AbstractVisitor {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ArgsInfo: |" + inlineBorder
|
||||
+ " ->" + (inlinedInsn == null ? "-" : inlinedInsn.pos)
|
||||
+ " " + args + " : " + insn;
|
||||
+ " ->" + (inlinedInsn == null ? '-' : inlinedInsn.pos)
|
||||
+ ' ' + args + " : " + insn;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -241,9 +241,9 @@ public class DotGraphVisitor extends AbstractVisitor {
|
||||
if (c instanceof BlockNode) {
|
||||
name = "Node_" + ((BlockNode) c).getId();
|
||||
} else if (c instanceof IBlock) {
|
||||
name = "Node_" + c.getClass().getSimpleName() + "_" + c.hashCode();
|
||||
name = "Node_" + c.getClass().getSimpleName() + '_' + c.hashCode();
|
||||
} else {
|
||||
name = "cluster_" + c.getClass().getSimpleName() + "_" + c.hashCode();
|
||||
name = "cluster_" + c.getClass().getSimpleName() + '_' + c.hashCode();
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
@@ -473,7 +473,7 @@ public class ModVisitor extends AbstractVisitor {
|
||||
for (RegisterArg arg : mth.getArguments(false)) {
|
||||
String name = arg.getName();
|
||||
if (name != null && NameMapper.isReserved(name)) {
|
||||
name = name + "_";
|
||||
name = name + '_';
|
||||
arg.getSVar().setName(name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class RenameVisitor extends AbstractVisitor {
|
||||
}
|
||||
if (alias.getPackage().isEmpty()) {
|
||||
String fullName = alias.makeFullClsName(alias.getShortName(), true);
|
||||
String newFullName = Consts.DEFAULT_PACKAGE_NAME + "." + fullName;
|
||||
String newFullName = Consts.DEFAULT_PACKAGE_NAME + '.' + fullName;
|
||||
classInfo.rename(cls.root(), newFullName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,6 @@ public final class BlocksPair {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "(" + first + ", " + second + ")";
|
||||
return "(" + first + ", " + second + ')';
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -116,7 +116,7 @@ public final class BlocksRemoveInfo {
|
||||
+ ", processed: " + processed
|
||||
+ ", outs: " + outs
|
||||
+ ", regMap: " + regMap
|
||||
+ ", split: " + startSplitIndex + "-" + endSplitIndex
|
||||
+ "}";
|
||||
+ ", split: " + startSplitIndex + '-' + endSplitIndex
|
||||
+ '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ public class ProcessVariables extends AbstractVisitor {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "r" + regNum + ":" + type;
|
||||
return "r" + regNum + ':' + type;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ public class RegionMaker {
|
||||
|
||||
int startBlockId = startBlock.getId();
|
||||
if (processedBlocks.get(startBlockId)) {
|
||||
mth.addWarn("Removed duplicated region for block: " + startBlock + " " + startBlock.getAttributesString());
|
||||
mth.addWarn("Removed duplicated region for block: " + startBlock + ' ' + startBlock.getAttributesString());
|
||||
return r;
|
||||
}
|
||||
processedBlocks.set(startBlockId);
|
||||
|
||||
@@ -57,7 +57,7 @@ public class InsnUtils {
|
||||
return "";
|
||||
}
|
||||
if (index instanceof String) {
|
||||
return "\"" + index + "\"";
|
||||
return "\"" + index + '"';
|
||||
}
|
||||
return index.toString();
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ public class AndroidResourcesUtils {
|
||||
|
||||
@NotNull
|
||||
private static ClassNode addClassForResType(ClassNode resCls, boolean rClsExists, String typeName) {
|
||||
ClassNode newTypeCls = new ClassNode(resCls.dex(), resCls.getFullName() + "$" + typeName,
|
||||
ClassNode newTypeCls = new ClassNode(resCls.dex(), resCls.getFullName() + '$' + typeName,
|
||||
AccessFlags.ACC_PUBLIC | AccessFlags.ACC_STATIC | AccessFlags.ACC_FINAL);
|
||||
resCls.addInnerClass(newTypeCls);
|
||||
if (rClsExists) {
|
||||
|
||||
@@ -27,6 +27,6 @@ public class DexFile {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return inputFile + (name.isEmpty() ? "" : ":" + name);
|
||||
return inputFile + (name.isEmpty() ? "" : ':' + name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class FileUtils {
|
||||
public static File createTempFile(String suffix) {
|
||||
File temp;
|
||||
try {
|
||||
temp = File.createTempFile("jadx-tmp-", System.nanoTime() + "-" + suffix);
|
||||
temp = File.createTempFile("jadx-tmp-", System.nanoTime() + '-' + suffix);
|
||||
temp.deleteOnExit();
|
||||
} catch (IOException e) {
|
||||
throw new JadxRuntimeException("Failed to create temp file with suffix: " + suffix);
|
||||
@@ -77,7 +77,7 @@ public class FileUtils {
|
||||
|
||||
public static File createTempDir(String suffix) {
|
||||
try {
|
||||
Path path = Files.createTempDirectory("jadx-tmp-" + System.nanoTime() + "-" + suffix);
|
||||
Path path = Files.createTempDirectory("jadx-tmp-" + System.nanoTime() + '-' + suffix);
|
||||
path.toFile().deleteOnExit();
|
||||
return path.toFile();
|
||||
} catch (IOException e) {
|
||||
|
||||
@@ -209,7 +209,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
String str = getString(strIndex);
|
||||
if (!isLastEnd) {
|
||||
isLastEnd = true;
|
||||
writer.add(">");
|
||||
writer.add('>');
|
||||
}
|
||||
writer.attachSourceLine(lineNumber);
|
||||
String escapedStr = StringUtils.escapeXML(str);
|
||||
@@ -235,13 +235,13 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
int startNS = is.readInt32();
|
||||
int startNSName = is.readInt32(); // actually is elementName...
|
||||
if (!isLastEnd && !"ERROR".equals(currentTag)) {
|
||||
writer.add(">");
|
||||
writer.add('>');
|
||||
}
|
||||
isOneLine = true;
|
||||
isLastEnd = false;
|
||||
currentTag = deobfClassName(getString(startNSName));
|
||||
currentTag = getValidTagAttributeName(currentTag);
|
||||
writer.startLine("<").add(currentTag);
|
||||
writer.startLine('<').add(currentTag);
|
||||
writer.attachSourceLine(elementBegLineNumber);
|
||||
int attributeStart = is.readInt16();
|
||||
if (attributeStart != 0x14) {
|
||||
@@ -263,7 +263,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
writer.add(':');
|
||||
writer.add(nsValue);
|
||||
}
|
||||
writer.add("=\"").add(StringUtils.escapeXML(entry.getKey())).add("\"");
|
||||
writer.add("=\"").add(StringUtils.escapeXML(entry.getKey())).add('"');
|
||||
}
|
||||
}
|
||||
boolean attrNewLine = attributeCount != 1 && ATTR_NEW_LINE;
|
||||
@@ -373,13 +373,13 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
// reference custom processing
|
||||
String name = styleMap.get(attrValData);
|
||||
if (name != null) {
|
||||
writer.add("@style/").add(name.replaceAll("_", "."));
|
||||
writer.add("@style/").add(name.replace('_', '.'));
|
||||
} else {
|
||||
String resName = resNames.get(attrValData);
|
||||
if (resName != null) {
|
||||
writer.add("@");
|
||||
writer.add('@');
|
||||
if (resName.startsWith("id/")) {
|
||||
writer.add("+");
|
||||
writer.add('+');
|
||||
}
|
||||
writer.add(resName);
|
||||
} else {
|
||||
@@ -424,7 +424,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
// if (elementNS != -1) {
|
||||
// writer.add(getString(elementNS)).add(':');
|
||||
// }
|
||||
writer.add(elemName).add(">");
|
||||
writer.add(elemName).add('>');
|
||||
}
|
||||
isLastEnd = true;
|
||||
if (writer.getIndent() != 0) {
|
||||
@@ -470,7 +470,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
|
||||
private boolean isDeobfCandidateAttr(String shortNsName, String attrName) {
|
||||
String fullName;
|
||||
if (shortNsName != null) {
|
||||
fullName = shortNsName + ":" + attrName;
|
||||
fullName = shortNsName + ':' + attrName;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ManifestAttributes {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[" + type + ", " + values + "]";
|
||||
return "[" + type + ", " + values + ']';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ public class ManifestAttributes {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Map.Entry<Long, String> entry : attr.getValues().entrySet()) {
|
||||
if (value == entry.getKey()) {
|
||||
sb = new StringBuilder(entry.getValue() + "|");
|
||||
sb = new StringBuilder(entry.getValue() + '|');
|
||||
break;
|
||||
} else if ((value & entry.getKey()) == entry.getKey()) {
|
||||
sb.append(entry.getValue()).append('|');
|
||||
|
||||
@@ -49,7 +49,7 @@ public class ResContainer implements Comparable<ResContainer> {
|
||||
}
|
||||
|
||||
public String getFileName() {
|
||||
return name.replace("/", File.separator);
|
||||
return name.replace('/', File.separatorChar);
|
||||
}
|
||||
|
||||
public List<ResContainer> getSubFiles() {
|
||||
@@ -96,6 +96,6 @@ public class ResContainer implements Comparable<ResContainer> {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Res{" + name + ", type=" + dataType + ", subFiles=" + subFiles + "}";
|
||||
return "Res{" + name + ", type=" + dataType + ", subFiles=" + subFiles + '}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class ResTableParser extends CommonBinaryParser {
|
||||
|
||||
Set<String> addedValues = new HashSet<>();
|
||||
for (ResourceEntry ri : resStorage.getResources()) {
|
||||
if (addedValues.add(ri.getTypeName() + "." + ri.getKeyName())) {
|
||||
if (addedValues.add(ri.getTypeName() + '.' + ri.getKeyName())) {
|
||||
String format = String.format("<public type=\"%s\" name=\"%s\" id=\"%s\" />",
|
||||
ri.getTypeName(), ri.getKeyName(), ri.getId());
|
||||
writer.startLine(format);
|
||||
|
||||
@@ -180,9 +180,9 @@ public class ResXmlGen {
|
||||
cw.add('<').add(itemTag);
|
||||
if (attrName != null && attrValue != null) {
|
||||
if (typeName.equals("attr")) {
|
||||
cw.add(' ').add("name=\"").add(attrName.replace("id.", "")).add("\" value=\"").add(attrValue).add("\"");
|
||||
cw.add(' ').add("name=\"").add(attrName.replace("id.", "")).add("\" value=\"").add(attrValue).add('"');
|
||||
} else if (typeName.equals("style")) {
|
||||
cw.add(' ').add("name=\"").add(attrName.replace("attr.", "")).add("\"");
|
||||
cw.add(' ').add("name=\"").add(attrName.replace("attr.", "")).add('"');
|
||||
} else {
|
||||
cw.add(' ').add(attrName).add("=\"").add(attrValue).add('"');
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class ResourceStorage {
|
||||
public Map<Integer, String> getResourcesNames() {
|
||||
Map<Integer, String> map = new HashMap<>();
|
||||
for (ResourceEntry entry : list) {
|
||||
map.put(entry.getId(), entry.getTypeName() + "/" + entry.getKeyName());
|
||||
map.put(entry.getId(), entry.getTypeName() + '/' + entry.getKeyName());
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -450,7 +450,7 @@ public class EntryConfig {
|
||||
// denies values-xxx, anything else
|
||||
if (localeVariant == null && localeScript == null && (region[0] != '\00' || language[0] != '\00') &&
|
||||
region.length != 3) {
|
||||
sb.append("-").append(language);
|
||||
sb.append('-').append(language);
|
||||
if (region[0] != '\00') {
|
||||
sb.append("-r").append(region);
|
||||
}
|
||||
@@ -463,13 +463,13 @@ public class EntryConfig {
|
||||
sb.append(language);
|
||||
}
|
||||
if (localeScript != null && localeScript.length == 4) {
|
||||
sb.append("+").append(localeScript);
|
||||
sb.append('+').append(localeScript);
|
||||
}
|
||||
if ((region.length == 2 || region.length == 3) && region[0] != '\00') {
|
||||
sb.append("+").append(region);
|
||||
sb.append('+').append(region);
|
||||
}
|
||||
if (localeVariant != null && localeVariant.length >= 5) {
|
||||
sb.append("+").append(toUpper(localeVariant));
|
||||
sb.append('+').append(toUpper(localeVariant));
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
|
||||
@@ -75,6 +75,6 @@ public final class ResourceEntry {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return " 0x" + Integer.toHexString(id) + " (" + id + ")" + config + " = " + typeName + "." + keyName;
|
||||
return " 0x" + Integer.toHexString(id) + " (" + id + ')' + config + " = " + typeName + '.' + keyName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ public class ValuesParser extends ParserConstants {
|
||||
if (nameStr == null) {
|
||||
strList.add(valueStr);
|
||||
} else {
|
||||
strList.add(nameStr + "=" + valueStr);
|
||||
strList.add(nameStr + '=' + valueStr);
|
||||
}
|
||||
}
|
||||
return strList.toString();
|
||||
@@ -110,7 +110,7 @@ public class ValuesParser extends ParserConstants {
|
||||
}
|
||||
return "?unknown_ref: " + Integer.toHexString(data);
|
||||
}
|
||||
return "@" + ri;
|
||||
return '@' + ri;
|
||||
}
|
||||
|
||||
case TYPE_ATTRIBUTE: {
|
||||
@@ -122,7 +122,7 @@ public class ValuesParser extends ParserConstants {
|
||||
}
|
||||
return "?unknown_attr_ref: " + Integer.toHexString(data);
|
||||
}
|
||||
return "?" + ri;
|
||||
return '?' + ri;
|
||||
}
|
||||
|
||||
case TYPE_DIMENSION:
|
||||
@@ -132,7 +132,7 @@ public class ValuesParser extends ParserConstants {
|
||||
|
||||
default:
|
||||
LOG.warn("Unknown data type: 0x{} {}", Integer.toHexString(dataType), data);
|
||||
return " ?0x" + Integer.toHexString(dataType) + " " + data;
|
||||
return " ?0x" + Integer.toHexString(dataType) + ' ' + data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -211,7 +211,7 @@ public class JadxSettingsWindow extends JDialog {
|
||||
private String getFontLabelStr() {
|
||||
Font font = settings.getFont();
|
||||
String fontStyleName = Utils.getFontStyleName(font.getStyle());
|
||||
return NLS.str("preferences.font") + ": " + font.getFontName() + " " + fontStyleName + " " + font.getSize();
|
||||
return NLS.str("preferences.font") + ": " + font.getFontName() + ' ' + fontStyleName + ' ' + font.getSize();
|
||||
}
|
||||
|
||||
private SettingsGroup makeDecompilationGroup() {
|
||||
|
||||
@@ -94,7 +94,7 @@ public class JMethod extends JNode {
|
||||
|
||||
@Override
|
||||
public String makeLongString() {
|
||||
String name = mth.getDeclaringClass().getFullName() + "." + makeBaseString();
|
||||
String name = mth.getDeclaringClass().getFullName() + '.' + makeBaseString();
|
||||
return Utils.typeFormat(name, getReturnType());
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ public class JSources extends JNode {
|
||||
pkg.getInnerPackages().clear();
|
||||
pkg.getInnerPackages().addAll(innerPkg.getInnerPackages());
|
||||
pkg.getClasses().addAll(innerPkg.getClasses());
|
||||
pkg.setName(pkg.getName() + "." + innerPkg.getName());
|
||||
pkg.setName(pkg.getName() + '.' + innerPkg.getName());
|
||||
|
||||
innerPkg.getInnerPackages().clear();
|
||||
innerPkg.getClasses().clear();
|
||||
|
||||
@@ -44,7 +44,7 @@ class SearchBar extends JToolBar {
|
||||
public SearchBar(RSyntaxTextArea textArea) {
|
||||
rTextArea = textArea;
|
||||
|
||||
JLabel findLabel = new JLabel(NLS.str("search.find") + ":");
|
||||
JLabel findLabel = new JLabel(NLS.str("search.find") + ':');
|
||||
add(findLabel);
|
||||
|
||||
searchField = new JTextField(30);
|
||||
|
||||
Reference in New Issue
Block a user