From fa158707527b0758c459ba5a4b94c522094fbaa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Mon, 24 Feb 2014 22:15:10 +0100 Subject: [PATCH] Issue #306 editing AS directly - detectUnitializedVars fix --- .../abc/avm2/model/clauses/ForEachInAVM2Item.java | 4 +++- .../flash/abc/avm2/model/clauses/ForInAVM2Item.java | 4 +++- .../flash/abc/avm2/model/clauses/TryAVM2Item.java | 8 ++++++-- .../flash/action/model/clauses/ClassActionItem.java | 8 ++++++-- .../flash/action/model/clauses/ForInActionItem.java | 4 +++- .../model/clauses/IfFrameLoadedActionItem.java | 4 +++- .../flash/action/model/clauses/TryActionItem.java | 8 ++++++-- .../jpexs/decompiler/graph/model/DoWhileItem.java | 4 +++- .../com/jpexs/decompiler/graph/model/ForItem.java | 12 +++++++++--- .../src/com/jpexs/decompiler/graph/model/IfItem.java | 8 ++++++-- .../com/jpexs/decompiler/graph/model/SwitchItem.java | 4 +++- .../decompiler/graph/model/UniversalLoopItem.java | 4 +++- .../com/jpexs/decompiler/graph/model/WhileItem.java | 4 +++- 13 files changed, 57 insertions(+), 19 deletions(-) diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java index 400144aa4..dda583455 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForEachInAVM2Item.java @@ -41,7 +41,9 @@ public class ForEachInAVM2Item extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java index 440d6557a..f18bc0095 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/ForInAVM2Item.java @@ -41,7 +41,9 @@ public class ForInAVM2Item extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java index dca7c2a38..1863b9541 100644 --- a/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java +++ b/trunk/src/com/jpexs/decompiler/flash/abc/avm2/model/clauses/TryAVM2Item.java @@ -36,9 +36,13 @@ public class TryAVM2Item extends AVM2Item implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(tryCommands); + if (tryCommands != null) { + ret.add(tryCommands); + } ret.addAll(catchCommands); - ret.add(finallyCommands); + if (finallyCommands != null) { + ret.add(finallyCommands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ClassActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ClassActionItem.java index aae5ec50d..012e6ecb1 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ClassActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ClassActionItem.java @@ -53,8 +53,12 @@ public class ClassActionItem extends ActionItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(functions); - ret.add(staticFunctions); + if (functions != null) { + ret.add(functions); + } + if (staticFunctions != null) { + ret.add(staticFunctions); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java index 6c7f76ab4..f69e07a7d 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java @@ -55,7 +55,9 @@ public class ForInActionItem extends LoopActionItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/IfFrameLoadedActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/IfFrameLoadedActionItem.java index 8c4f2f838..68e3f7176 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/IfFrameLoadedActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/IfFrameLoadedActionItem.java @@ -70,7 +70,9 @@ public class IfFrameLoadedActionItem extends ActionItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(actions); + if (actions != null) { + ret.add(actions); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/TryActionItem.java b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/TryActionItem.java index aad568071..be17901b2 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/TryActionItem.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/model/clauses/TryActionItem.java @@ -44,9 +44,13 @@ public class TryActionItem extends ActionItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(tryCommands); + if (tryCommands != null) { + ret.add(tryCommands); + } ret.addAll(catchCommands); - ret.add(finallyCommands); + if (finallyCommands != null) { + ret.add(finallyCommands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/DoWhileItem.java b/trunk/src/com/jpexs/decompiler/graph/model/DoWhileItem.java index 1e1d30fb3..1f8e28d50 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/DoWhileItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/DoWhileItem.java @@ -42,7 +42,9 @@ public class DoWhileItem extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/ForItem.java b/trunk/src/com/jpexs/decompiler/graph/model/ForItem.java index b3f71b05b..f4f4456ef 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/ForItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/ForItem.java @@ -39,9 +39,15 @@ public class ForItem extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(firstCommands); - ret.add(commands); - ret.add(finalCommands); + if (firstCommands != null) { + ret.add(firstCommands); + } + if (commands != null) { + ret.add(commands); + } + if (finalCommands != null) { + ret.add(finalCommands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/IfItem.java b/trunk/src/com/jpexs/decompiler/graph/model/IfItem.java index 4ab699a92..67b895846 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/IfItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/IfItem.java @@ -44,8 +44,12 @@ public class IfItem extends GraphTargetItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(onTrue); - ret.add(onFalse); + if (onTrue != null) { + ret.add(onTrue); + } + if (onFalse != null) { + ret.add(onFalse); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/SwitchItem.java b/trunk/src/com/jpexs/decompiler/graph/model/SwitchItem.java index 8f16cfebe..dadd27c36 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/SwitchItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/SwitchItem.java @@ -41,7 +41,9 @@ public class SwitchItem extends LoopItem implements Block { public List> getSubs() { List> ret = new ArrayList<>(); ret.addAll(caseCommands); - ret.add(defaultCommands); + if (defaultCommands != null) { + ret.add(defaultCommands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java b/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java index 378718ffe..e8042ff0a 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/UniversalLoopItem.java @@ -86,7 +86,9 @@ public class UniversalLoopItem extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; } diff --git a/trunk/src/com/jpexs/decompiler/graph/model/WhileItem.java b/trunk/src/com/jpexs/decompiler/graph/model/WhileItem.java index f0044923d..62d01c7f2 100644 --- a/trunk/src/com/jpexs/decompiler/graph/model/WhileItem.java +++ b/trunk/src/com/jpexs/decompiler/graph/model/WhileItem.java @@ -37,7 +37,9 @@ public class WhileItem extends LoopItem implements Block { @Override public List> getSubs() { List> ret = new ArrayList<>(); - ret.add(commands); + if (commands != null) { + ret.add(commands); + } return ret; }