From f0ecb254dae3ce51e1898c2ca620c4fdbf392c2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=F8=EDk?= Date: Fri, 19 Apr 2013 20:53:04 +0200 Subject: [PATCH] AS2: chained assignments vs classes fix --- .../com/jpexs/decompiler/flash/action/Action.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/trunk/src/com/jpexs/decompiler/flash/action/Action.java b/trunk/src/com/jpexs/decompiler/flash/action/Action.java index 62233d9a2..f69a55b9f 100644 --- a/trunk/src/com/jpexs/decompiler/flash/action/Action.java +++ b/trunk/src/com/jpexs/decompiler/flash/action/Action.java @@ -1008,6 +1008,18 @@ public class Action implements GraphSourceItem { output2.add(new ClassTreeItem(className, extendsOp, implementsOp, functions, vars, staticFunctions, staticVars)); return output2; } + if ((parts.get(pos) instanceof SetMemberTreeItem) && ((SetMemberTreeItem) parts.get(pos)).object instanceof SetTypeTreeItem) { + //int tmp = classReg; + SetMemberTreeItem smt=(SetMemberTreeItem)parts.get(pos); + SetTypeTreeItem stt = (SetTypeTreeItem) ((SetMemberTreeItem) parts.get(pos)).object; + instanceReg = stt.getTempRegister(); + + parts.remove(pos); + parts.add(pos+0, new StoreRegisterTreeItem(null, new RegisterNumber(instanceReg), stt.getValue(), false)); + parts.add(pos+1, (GraphTargetItem) stt); + smt.object = new DirectValueTreeItem(null, 0, new RegisterNumber(instanceReg), null); + parts.add(pos+2, smt); + } if (parts.get(pos) instanceof StoreRegisterTreeItem) { if (((StoreRegisterTreeItem) parts.get(pos)).value instanceof GetMemberTreeItem) {