diff --git a/antlib/jacocoant.jar b/antlib/jacocoant.jar index 43340ba1c..09d4a4796 100644 Binary files a/antlib/jacocoant.jar and b/antlib/jacocoant.jar differ diff --git a/lib/graphs.jar b/lib/graphs.jar new file mode 100644 index 000000000..868ace4e4 Binary files /dev/null and b/lib/graphs.jar differ diff --git a/libsrc/ffdec_lib/antlib/jacocoant.jar b/libsrc/ffdec_lib/antlib/jacocoant.jar index 43340ba1c..09d4a4796 100644 Binary files a/libsrc/ffdec_lib/antlib/jacocoant.jar and b/libsrc/ffdec_lib/antlib/jacocoant.jar differ diff --git a/libsrc/ffdec_lib/nbproject/project.xml b/libsrc/ffdec_lib/nbproject/project.xml index a8c93a845..01bd7c25e 100644 --- a/libsrc/ffdec_lib/nbproject/project.xml +++ b/libsrc/ffdec_lib/nbproject/project.xml @@ -239,7 +239,7 @@ auxiliary.show.customizer.message= src - ../../lib/LZMA.jar;../../lib/avi.jar;../../lib/gif.jar;../../lib/gnujpdf.jar;../../lib/jl1.0.1.jar;../../lib/jpacker.jar;../../lib/nellymoser.jar;../../lib/sfntly.jar;../../lib/ttf.jar;../../lib/cmykjpeg.jar;../../src;../../lib/flashdebugger.jar + ../../lib/LZMA.jar;../../lib/avi.jar;../../lib/gif.jar;../../lib/gnujpdf.jar;../../lib/jl1.0.1.jar;../../lib/jpacker.jar;../../lib/nellymoser.jar;../../lib/sfntly.jar;../../lib/ttf.jar;../../lib/cmykjpeg.jar;../../src;../../lib/flashdebugger.jar;../../lib/graphs.jar build reports dist diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/PcodeGraphVizExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/PcodeGraphVizExporter.java index 6b6e68701..3a2ceb9f5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/PcodeGraphVizExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/PcodeGraphVizExporter.java @@ -48,6 +48,9 @@ public class PcodeGraphVizExporter { private final String BLOCK_STYLE = "shape=\"box\""; + private static final int INS_LEN_LIMIT = 50; + private static final String ELIPSIS = "..."; + private String getBlockName(GraphSource list, GraphPart part) { return "loc" + Helper.formatAddress(list.pos2adr(part.start, true)); } @@ -108,7 +111,11 @@ public class PcodeGraphVizExporter { if (knownAddresses.contains(graphSource.get(j).getAddress())) { blkCodeBuilder.append("loc").append(Helper.formatAddress(graphSource.get(j).getAddress())).append(":\r\n"); } - blkCodeBuilder.append(graphSource.insToString(j)).append("\r\n"); + String insStr = graphSource.insToString(j); + if (insStr.length() > INS_LEN_LIMIT) { + insStr = insStr.substring(0, INS_LEN_LIMIT - ELIPSIS.length()) + ELIPSIS; + } + blkCodeBuilder.append(insStr).append("\r\n"); } } String labelStr = blkCodeBuilder.toString(); diff --git a/nbproject/project.xml b/nbproject/project.xml index 8e37dff20..405584824 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -323,7 +323,7 @@ src - lib/LZMA.jar;lib/jna-3.5.1.jar;lib/jpproxy.jar;lib/trident-6.2.jar;lib/substance-flamingo-6.2.jar;lib/flamingo-6.2.jar;lib/substance-6.2.jar;lib/jl1.0.1.jar;lib/nellymoser.jar;lib/gif.jar;lib/avi.jar;lib/ttf.jar;lib/jpacker.jar;lib/sfntly.jar;lib/gnujpdf.jar;libsrc/ffdec_lib/src;lib/tablelayout.jar;lib/jsyntaxpane-0.9.5.jar;lib/JavactiveX.jar;lib/flashdebugger.jar;lib/treetable.jar;lib/minimal-json-0.9.5.jar + lib/LZMA.jar;lib/jna-3.5.1.jar;lib/jpproxy.jar;lib/trident-6.2.jar;lib/substance-flamingo-6.2.jar;lib/flamingo-6.2.jar;lib/substance-6.2.jar;lib/jl1.0.1.jar;lib/nellymoser.jar;lib/gif.jar;lib/avi.jar;lib/ttf.jar;lib/jpacker.jar;lib/sfntly.jar;lib/gnujpdf.jar;libsrc/ffdec_lib/src;lib/tablelayout.jar;lib/jsyntaxpane-0.9.5.jar;lib/JavactiveX.jar;lib/flashdebugger.jar;lib/treetable.jar;lib/minimal-json-0.9.5.jar;lib/graphs.jar build javadoc reports diff --git a/src/com/jpexs/decompiler/flash/gui/graph/GraphVizGraphPanel.java b/src/com/jpexs/decompiler/flash/gui/graph/GraphVizGraphPanel.java index 8eff56105..7bad26d68 100644 --- a/src/com/jpexs/decompiler/flash/gui/graph/GraphVizGraphPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/graph/GraphVizGraphPanel.java @@ -21,6 +21,7 @@ import com.jpexs.decompiler.flash.exporters.script.PcodeGraphVizExporter; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.flash.helpers.StringBuilderTextWriter; import com.jpexs.decompiler.graph.Graph; +import com.jpexs.graphs.graphviz.graph.operations.codestructure.CodeStructureModifyOperation; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; @@ -51,8 +52,11 @@ public class GraphVizGraphPanel extends AbstractGraphPanel { StringBuilder sb = new StringBuilder(); StringBuilderTextWriter sbWriter = new StringBuilderTextWriter(null, sb); ex.export(graph, sbWriter); + String original = sb.toString(); + CodeStructureModifyOperation structureModify = new CodeStructureModifyOperation(); + String structured = structureModify.execute(original, null); try { - image = new GraphVizDotCommands().dotToImage(sb.toString()); + image = new GraphVizDotCommands().dotToImage(structured); } catch (IOException ex1) { logger.log(Level.SEVERE, "Exporting image failed", ex1); image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);