Commit 957d5394 authored by Skylot's avatar Skylot

refactor: add static methods for create DotGraphVisitor

parent 95afe121
...@@ -59,7 +59,7 @@ public class Jadx { ...@@ -59,7 +59,7 @@ public class Jadx {
passes.add(new DebugInfoVisitor()); passes.add(new DebugInfoVisitor());
passes.add(new TypeInference()); passes.add(new TypeInference());
if (args.isRawCFGOutput()) { if (args.isRawCFGOutput()) {
passes.add(new DotGraphVisitor(outDir, false, true)); passes.add(DotGraphVisitor.dumpRaw(outDir));
} }
passes.add(new ConstInlinerVisitor()); passes.add(new ConstInlinerVisitor());
...@@ -72,7 +72,7 @@ public class Jadx { ...@@ -72,7 +72,7 @@ public class Jadx {
passes.add(new CodeShrinker()); passes.add(new CodeShrinker());
passes.add(new ReSugarCode()); passes.add(new ReSugarCode());
if (args.isCFGOutput()) { if (args.isCFGOutput()) {
passes.add(new DotGraphVisitor(outDir, false)); passes.add(DotGraphVisitor.dump(outDir));
} }
passes.add(new RegionMakerVisitor()); passes.add(new RegionMakerVisitor());
...@@ -85,7 +85,7 @@ public class Jadx { ...@@ -85,7 +85,7 @@ public class Jadx {
passes.add(new CheckRegions()); passes.add(new CheckRegions());
if (args.isCFGOutput()) { if (args.isCFGOutput()) {
passes.add(new DotGraphVisitor(outDir, true)); passes.add(DotGraphVisitor.dumpRegions(outDir));
} }
passes.add(new MethodInlineVisitor()); passes.add(new MethodInlineVisitor());
......
...@@ -30,16 +30,28 @@ public class DotGraphVisitor extends AbstractVisitor { ...@@ -30,16 +30,28 @@ public class DotGraphVisitor extends AbstractVisitor {
private final boolean useRegions; private final boolean useRegions;
private final boolean rawInsn; 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.dir = outDir;
this.useRegions = useRegions; this.useRegions = useRegions;
this.rawInsn = rawInsn; this.rawInsn = rawInsn;
} }
public DotGraphVisitor(File outDir, boolean useRegions) {
this(outDir, useRegions, false);
}
@Override @Override
public void visit(MethodNode mth) { public void visit(MethodNode mth) {
if (mth.isNoCode()) { if (mth.isNoCode()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment