From f51644caebb097aae1053a026a5da8cabc025167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 24 Jan 2021 19:11:23 +0100 Subject: [PATCH] Set super fix - it's settype (works with chained assignments) --- .../abc/avm2/model/SetSuperAVM2Item.java | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetSuperAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetSuperAVM2Item.java index 6b92b9c9c..a707a2eea 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetSuperAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetSuperAVM2Item.java @@ -16,24 +16,45 @@ */ package com.jpexs.decompiler.flash.abc.avm2.model; +import com.jpexs.decompiler.flash.abc.ABC; +import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; +import com.jpexs.decompiler.flash.abc.avm2.instructions.SetTypeIns; +import com.jpexs.decompiler.flash.abc.avm2.model.clauses.DeclarationAVM2Item; +import com.jpexs.decompiler.flash.abc.types.MethodBody; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; +import com.jpexs.decompiler.graph.DottedChain; import com.jpexs.decompiler.graph.GraphPart; import com.jpexs.decompiler.graph.GraphSourceItem; import com.jpexs.decompiler.graph.GraphTargetItem; import com.jpexs.decompiler.graph.GraphTargetVisitorInterface; import com.jpexs.decompiler.graph.TypeItem; import com.jpexs.decompiler.graph.model.LocalData; +import java.util.HashMap; +import java.util.List; +import java.util.Stack; /** * * @author JPEXS */ -public class SetSuperAVM2Item extends AVM2Item { +public class SetSuperAVM2Item extends AVM2Item implements SetTypeAVM2Item { public GraphTargetItem object; public FullMultinameAVM2Item propertyName; + public DeclarationAVM2Item declaration; + + @Override + public DeclarationAVM2Item getDeclaration() { + return declaration; + } + + @Override + public void setDeclaration(DeclarationAVM2Item declaration) { + this.declaration = declaration; + } + @Override public void visit(GraphTargetVisitorInterface visitor) { visitor.visit(object); @@ -80,4 +101,14 @@ public class SetSuperAVM2Item extends AVM2Item { public boolean hasReturnValue() { return false; } + + @Override + public GraphTargetItem getObject() { + return new GetSuperAVM2Item(getInstruction(), getLineStartIns(), object, propertyName); + } + + @Override + public GraphTargetItem getValue() { + return value; + } }