From 957d5394d26f33d33e36012529fab752300376a5 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sat, 16 Aug 2014 17:06:50 +0400 Subject: [PATCH] refactor: add static methods for create DotGraphVisitor --- jadx-core/src/main/java/jadx/core/Jadx.java | 6 ++--- .../core/dex/visitors/DotGraphVisitor.java | 22 ++++++++++++++----- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/Jadx.java b/jadx-core/src/main/java/jadx/core/Jadx.java index 42d05c0bb..d2a17cc80 100644 --- a/jadx-core/src/main/java/jadx/core/Jadx.java +++ b/jadx-core/src/main/java/jadx/core/Jadx.java @@ -59,7 +59,7 @@ public class Jadx { passes.add(new DebugInfoVisitor()); passes.add(new TypeInference()); if (args.isRawCFGOutput()) { - passes.add(new DotGraphVisitor(outDir, false, true)); + passes.add(DotGraphVisitor.dumpRaw(outDir)); } passes.add(new ConstInlinerVisitor()); @@ -72,7 +72,7 @@ public class Jadx { passes.add(new CodeShrinker()); passes.add(new ReSugarCode()); if (args.isCFGOutput()) { - passes.add(new DotGraphVisitor(outDir, false)); + passes.add(DotGraphVisitor.dump(outDir)); } passes.add(new RegionMakerVisitor()); @@ -85,7 +85,7 @@ public class Jadx { passes.add(new CheckRegions()); if (args.isCFGOutput()) { - passes.add(new DotGraphVisitor(outDir, true)); + passes.add(DotGraphVisitor.dumpRegions(outDir)); } passes.add(new MethodInlineVisitor()); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java index d46336f4a..3a609b2db 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java @@ -30,16 +30,28 @@ public class DotGraphVisitor extends AbstractVisitor { private final boolean useRegions; private final boolean rawInsn; - public DotGraphVisitor(File outDir, boolean useRegions, boolean rawInsn) { + public static DotGraphVisitor dump(File outDir) { + return new DotGraphVisitor(outDir, false, false); + } + + public static DotGraphVisitor dumpRaw(File outDir) { + return new DotGraphVisitor(outDir, false, true); + } + + public static DotGraphVisitor dumpRegions(File outDir) { + return new DotGraphVisitor(outDir, true, false); + } + + public static DotGraphVisitor dumpRawRegions(File outDir) { + return new DotGraphVisitor(outDir, true, true); + } + + private DotGraphVisitor(File outDir, boolean useRegions, boolean rawInsn) { this.dir = outDir; this.useRegions = useRegions; this.rawInsn = rawInsn; } - public DotGraphVisitor(File outDir, boolean useRegions) { - this(outDir, useRegions, false); - } - @Override public void visit(MethodNode mth) { if (mth.isNoCode()) {