From 052a8db606222cdd3ca9383f8c260c058a766417 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 9 Aug 2014 19:32:13 +0400 Subject: [PATCH] core: resolve minor issues --- .../main/java/jadx/core/codegen/InsnGen.java | 2 +- .../dex/visitors/ssa/LiveVarAnalysis.java | 1 - .../core/dex/visitors/ssa/SSATransform.java | 19 ++++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java b/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java index f14b0743..424e2648 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/InsnGen.java @@ -566,7 +566,7 @@ public class InsnGen { private void makeConstructor(ConstructorInsn insn, CodeWriter code) throws CodegenException { ClassNode cls = mth.dex().resolveClass(insn.getClassType()); - if (cls != null && cls.isAnonymous()) { + if (cls != null && cls.isAnonymous() && !fallback) { // anonymous class construction ClassInfo parent; if (cls.getInterfaces().size() == 1) { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java index 0185415a..fcfa0c26 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/LiveVarAnalysis.java @@ -20,7 +20,6 @@ public class LiveVarAnalysis { public LiveVarAnalysis(MethodNode mth) { this.mth = mth; - runAnalysis(); } public void runAnalysis() { diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java index 8789f0da..945c1a06 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/ssa/SSATransform.java @@ -32,17 +32,18 @@ public class SSATransform extends AbstractVisitor { process(mth); } - private void process(MethodNode mth) { + private static void process(MethodNode mth) { LiveVarAnalysis la = new LiveVarAnalysis(mth); la.runAnalysis(); - for (int i = 0; i < mth.getRegsCount(); i++) { + int regsCount = mth.getRegsCount(); + for (int i = 0; i < regsCount; i++) { placePhi(mth, i, la); } renameVariables(mth); removeUselessPhi(mth); } - private void placePhi(MethodNode mth, int regNum, LiveVarAnalysis la) { + private static void placePhi(MethodNode mth, int regNum, LiveVarAnalysis la) { List blocks = mth.getBasicBlocks(); int blocksCount = blocks.size(); BitSet hasPhi = new BitSet(blocksCount); @@ -71,7 +72,7 @@ public class SSATransform extends AbstractVisitor { } } - private void addPhi(BlockNode block, int regNum) { + private static void addPhi(BlockNode block, int regNum) { PhiListAttr phiList = block.get(AType.PHI_LIST); if (phiList == null) { phiList = new PhiListAttr(); @@ -82,7 +83,7 @@ public class SSATransform extends AbstractVisitor { block.getInstructions().add(0, phiInsn); } - private void renameVariables(MethodNode mth) { + private static void renameVariables(MethodNode mth) { int regsCount = mth.getRegsCount(); SSAVar[] vars = new SSAVar[regsCount]; int[] versions = new int[regsCount]; @@ -94,7 +95,7 @@ public class SSATransform extends AbstractVisitor { renameVar(mth, vars, versions, mth.getEnterBlock()); } - private void renameVar(MethodNode mth, SSAVar[] vars, int[] vers, BlockNode block) { + private static void renameVar(MethodNode mth, SSAVar[] vars, int[] vers, BlockNode block) { SSAVar[] inputVars = Arrays.copyOf(vars, vars.length); for (InsnNode insn : block.getInstructions()) { if (insn.getType() != InsnType.PHI) { @@ -142,7 +143,7 @@ public class SSATransform extends AbstractVisitor { System.arraycopy(inputVars, 0, vars, 0, vars.length); } - private void removeUselessPhi(MethodNode mth) { + private static void removeUselessPhi(MethodNode mth) { List insnToRemove = new ArrayList(); for (SSAVar var : mth.getSVars()) { // phi result not used @@ -165,7 +166,7 @@ public class SSATransform extends AbstractVisitor { removePhiList(mth, insnToRemove); } - private void removePhiWithSameArgs(PhiInsn phi, List insnToRemove) { + private static void removePhiWithSameArgs(PhiInsn phi, List insnToRemove) { if (phi.getArgsCount() <= 1) { insnToRemove.add(phi); return; @@ -189,7 +190,7 @@ public class SSATransform extends AbstractVisitor { } } - private void removePhiList(MethodNode mth, List insnToRemove) { + private static void removePhiList(MethodNode mth, List insnToRemove) { if (insnToRemove.isEmpty()) { return; } -- GitLab