From b5bf4c04b8d88d303dcebfec60792d4bfefec78c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Wed, 18 Nov 2015 19:25:41 +0100 Subject: [PATCH 1/2] nullpointer fix --- libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java index d1e8222ac..6c9fae924 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java @@ -973,10 +973,10 @@ public class Graph { } for (Loop l : loops) { if (l.loopContinue == part) { - return (new ContinueItem(null, code.get(part.start), l.id)); + return (new ContinueItem(null, part == null ? null : code.get(part.start), l.id)); } if (l.loopBreak == part) { - return (new BreakItem(null, code.get(part.start), l.id)); + return (new BreakItem(null, part == null ? null : code.get(part.start), l.id)); } } return null; From dd7016bb874c9d8880fe2a5ce1dc92ed988615c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Wed, 18 Nov 2015 19:53:28 +0100 Subject: [PATCH 2/2] nullpointer fix --- .../src/com/jpexs/decompiler/graph/Graph.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java index 6c9fae924..f72207f65 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/Graph.java @@ -971,12 +971,20 @@ public class Graph { if (stopPart.contains(part)) { return null; } + + GraphSourceItem firstIns = null; + if (part != null) { + if (part.start >= 0 && part.start < code.size()) { + firstIns = code.get(part.start); + } + } + for (Loop l : loops) { if (l.loopContinue == part) { - return (new ContinueItem(null, part == null ? null : code.get(part.start), l.id)); + return (new ContinueItem(null, firstIns, l.id)); } if (l.loopBreak == part) { - return (new BreakItem(null, part == null ? null : code.get(part.start), l.id)); + return (new BreakItem(null, firstIns, l.id)); } } return null;