diff --git a/trunk/src/com/jpexs/decompiler/flash/action/Action.java b/trunk/src/com/jpexs/decompiler/flash/action/Action.java index 984efbe75..e7257269e 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/Action.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/Action.java @@ -46,6 +46,7 @@ import com.jpexs.decompiler.flash.action.parser.pcode.ASMParser; import com.jpexs.decompiler.flash.action.parser.pcode.FlasmLexer; import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem; import com.jpexs.decompiler.flash.action.special.ActionEnd; +import com.jpexs.decompiler.flash.action.special.ActionStore; import com.jpexs.decompiler.flash.action.swf4.ActionEquals; import com.jpexs.decompiler.flash.action.swf4.ActionIf; import com.jpexs.decompiler.flash.action.swf4.ActionJump; @@ -1006,7 +1007,14 @@ public class Action implements GraphSourceItem { action.translate(stack, constants, output, registerNames); } } */ else { - try { + + if(action instanceof ActionStore){ + ActionStore store=(ActionStore)action; + store.setStore(actions.subList(ip+1, ip+1+store.getStoreSize())); + ip = ip + 1 + store.getStoreSize() -1/*ip++ will be next*/; + } + + try { action.translate(localData, stack, output, staticOperation, path); } catch (EmptyStackException ese) { Logger.getLogger(Action.class.getName()).log(Level.SEVERE, "Decompilation error in: " + path, ese); diff --git a/trunk/src/com/jpexs/decompiler/flash/action/ActionListReader.java b/trunk/src/com/jpexs/decompiler/flash/action/ActionListReader.java index b3ae08e7b..093de040d 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/ActionListReader.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/ActionListReader.java @@ -190,7 +190,7 @@ public class ActionListReader { } updateJumps(actions, jumps, containerLastActions, endAddress, version); - updateActionStores(actions, jumps); + //updateActionStores(actions, jumps); updateContainerSizes(actions, containerLastActions); updateActionLengths(actions, version); @@ -589,7 +589,7 @@ public class ActionListReader { updateAddresses(actions, startIp, version); updateJumps(actions, jumps, containerLastActions, endAddress, version); - updateActionStores(actions, jumps); + //updateActionStores(actions, jumps); updateContainerSizes(actions, containerLastActions); updateActionLengths(actions, version); diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java index 63de6b08c..f5064fe86 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/ASMParser.java @@ -137,9 +137,6 @@ public class ASMParser { public static List parse(long containerSWFOffset, boolean ignoreNops, List