From 183048bd82e164c6a6a9f26b609c49fdafa09e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 27 Nov 2022 10:54:51 +0100 Subject: [PATCH] Fixed #1888 Resolve properties on script traits --- .../decompiler/flash/abc/avm2/AVM2Code.java | 2 +- .../avm2/instructions/executing/CallIns.java | 1 + .../executing/CallPropLexIns.java | 8 +- .../executing/CallPropVoidIns.java | 8 +- .../executing/CallPropertyIns.java | 8 +- .../instructions/other/DeletePropertyIns.java | 4 +- .../avm2/instructions/other/GetLexIns.java | 66 +++++++------- .../instructions/other/GetPropertyIns.java | 85 +++++++++--------- .../instructions/other/InitPropertyIns.java | 6 +- .../instructions/other/SetPropertyIns.java | 6 +- .../flash/abc/avm2/model/CallAVM2Item.java | 6 ++ .../flash/abc/avm2/model/GetLexAVM2Item.java | 7 +- .../abc/avm2/model/GetPropertyAVM2Item.java | 5 +- .../abc/avm2/model/InitPropertyAVM2Item.java | 7 +- .../abc/avm2/model/SetPropertyAVM2Item.java | 7 +- .../abc/avm2/parser/script/AbcIndexing.java | 13 +++ .../ActionScript3ClassicAirDecompileTest.java | 3 +- .../ActionScript3ClassicDecompileTest.java | 3 +- .../testdata/as3_new/bin/as3_new.air.swf | Bin 21897 -> 21924 bytes .../testdata/as3_new/bin/as3_new.flex.swf | Bin 28428 -> 28462 bytes .../testdata/as3_new/src/tests/TestConvert.as | 3 + 21 files changed, 152 insertions(+), 96 deletions(-) diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java index 1a3943c0c..3623fbf11 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java @@ -1977,7 +1977,7 @@ public class AVM2Code implements Cloneable { Slot sl = new Slot(new NewActivationAVM2Item(null, null), abc.constants.getMultiname(traits.get(traitName).name_index)); TraitSlotConst tsc = (TraitSlotConst) traits.get(traitName); GraphTargetItem type = PropertyAVM2Item.multinameToType(tsc.type_index, abc.constants); - DeclarationAVM2Item d = new DeclarationAVM2Item(new GetLexAVM2Item(null, null, sl.multiname, abc.constants, type, false), type); + DeclarationAVM2Item d = new DeclarationAVM2Item(new GetLexAVM2Item(null, null, sl.multiname, abc.constants, type, TypeItem.UNBOUNDED /*?*/, false), type); declaredSlotsDec.add(d); declaredSlots.add(sl); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java index 736e3b83f..192512671 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallIns.java @@ -23,6 +23,7 @@ import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool; import com.jpexs.decompiler.flash.abc.avm2.LocalDataArea; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition; +import com.jpexs.decompiler.flash.abc.avm2.instructions.other.GetPropertyIns; import com.jpexs.decompiler.flash.abc.avm2.model.CallAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.GetPropertyAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.LocalRegAVM2Item; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropLexIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropLexIns.java index 6c70455fb..ff53fece1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropLexIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropLexIns.java @@ -81,12 +81,14 @@ public class CallPropLexIns extends CallPropertyIns { } FullMultinameAVM2Item multiname = resolveMultiname(localData, true, stack, localData.getConstants(), multinameIndex, ins); - GraphTargetItem receiver = stack.pop(); + GraphTargetItem obj = stack.pop(); Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, receiver, multiname, isStatic, true); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); - stack.push(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, false, receiver, multiname, args, type, isStatic.getVal())); + stack.push(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, false, obj, multiname, args, callType.getVal(), isStatic.getVal())); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropVoidIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropVoidIns.java index b5e624124..6bc06b3e2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropVoidIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropVoidIns.java @@ -82,10 +82,12 @@ public class CallPropVoidIns extends InstructionDefinition { } FullMultinameAVM2Item multiname = resolveMultiname(localData, true, stack, localData.getConstants(), multinameIndex, ins); - GraphTargetItem receiver = stack.pop(); + GraphTargetItem obj = stack.pop(); Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, receiver, multiname, isStatic, true); - output.add(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, true, receiver, multiname, args, type, isStatic.getVal())); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); + output.add(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, true, obj, multiname, args, callType.getVal(), isStatic.getVal())); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropertyIns.java index 4319dcfa0..4c12a7142 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/executing/CallPropertyIns.java @@ -82,11 +82,13 @@ public class CallPropertyIns extends InstructionDefinition { } FullMultinameAVM2Item multiname = resolveMultiname(localData, true, stack, localData.getConstants(), multinameIndex, ins); - GraphTargetItem receiver = stack.pop(); + GraphTargetItem obj = stack.pop(); Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, receiver, multiname, isStatic, true); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); - stack.push(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, false, receiver, multiname, args, type, isStatic.getVal())); + stack.push(new CallPropertyAVM2Item(ins, localData.lineStartInstruction, false, obj, multiname, args, callType.getVal(), isStatic.getVal())); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/DeletePropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/DeletePropertyIns.java index f79ea55c6..5a012d02d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/DeletePropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/DeletePropertyIns.java @@ -57,7 +57,9 @@ public class DeletePropertyIns extends InstructionDefinition { FullMultinameAVM2Item multiname = resolveMultiname(localData, true, stack, localData.getConstants(), multinameIndex, ins); GraphTargetItem obj = stack.pop(); Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, true); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); stack.add(new DeletePropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, isStatic.getVal())); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetLexIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetLexIns.java index 74ea5c78b..c3405f71e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetLexIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetLexIns.java @@ -24,10 +24,13 @@ import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition; import com.jpexs.decompiler.flash.abc.avm2.model.FindPropertyAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.GetLexAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.NewActivationAVM2Item; +import com.jpexs.decompiler.flash.abc.avm2.parser.script.AbcIndexing; import com.jpexs.decompiler.flash.abc.avm2.parser.script.PropertyAVM2Item; import com.jpexs.decompiler.flash.abc.types.Multiname; +import com.jpexs.decompiler.flash.abc.types.Namespace; import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; +import com.jpexs.decompiler.graph.DottedChain; import com.jpexs.decompiler.graph.GraphTargetItem; import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.TypeItem; @@ -46,12 +49,13 @@ public class GetLexIns extends InstructionDefinition { super(0x60, "getlex", new int[]{AVM2Code.DAT_MULTINAME_INDEX}, true); } - public static GraphTargetItem resolveLexType( + public static void resolveLexType( AVM2LocalData localData, GraphTargetItem obj, int multinameIndex, - Reference isStatic, boolean call) { - GraphTargetItem type = null; + Reference isStatic, Reference type, Reference callType) { + type.setVal(TypeItem.UNBOUNDED); + callType.setVal(TypeItem.UNBOUNDED); String multinameStr = localData.abc.constants.getMultiname(multinameIndex).getName(localData.abc.constants, new ArrayList<>(), true, true); for (Trait t : localData.methodBody.traits.traits) { if (t instanceof TraitSlotConst) { @@ -60,41 +64,41 @@ public class GetLexIns extends InstructionDefinition { tsc.getName(localData.abc).getName(localData.abc.constants, new ArrayList<>(), true, true), multinameStr )) { - type = PropertyAVM2Item.multinameToType(tsc.type_index, localData.abc.constants); - break; + GraphTargetItem ty = PropertyAVM2Item.multinameToType(tsc.type_index, localData.abc.constants); + type.setVal(ty); + callType.setVal(ty); + return; } } } - if (type == null) { - if (localData.abcIndex != null) { - String currentClassName = localData.classIndex == -1 ? null : localData.abc.instance_info.get(localData.classIndex).getName(localData.abc.constants).getNameWithNamespace(localData.abc.constants, true).toRawString(); - GraphTargetItem thisPropType = TypeItem.UNBOUNDED; - if (currentClassName != null) { - if (call) { - thisPropType = localData.abcIndex.findPropertyCallType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multinameIndex).namespace_index, true, true, true); - } else { - thisPropType = localData.abcIndex.findPropertyType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multinameIndex).namespace_index, true, true, true); - } - } - if (!thisPropType.equals(TypeItem.UNBOUNDED)) { - type = thisPropType; - } + if (localData.abcIndex != null) { + String currentClassName = localData.classIndex == -1 ? null : localData.abc.instance_info.get(localData.classIndex).getName(localData.abc.constants).getNameWithNamespace(localData.abc.constants, true).toRawString(); + if (currentClassName != null) { + localData.abcIndex.findPropertyTypeOrCallType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multinameIndex).namespace_index, true, true, true, type, callType); + } - if (type == null) { - TypeItem ti = new TypeItem(localData.abc.constants.getMultiname(multinameIndex).getNameWithNamespace(localData.abc.constants, true)); - if (localData.abcIndex.findClass(ti) != null) { - type = ti; + if (type.getVal().equals(TypeItem.UNBOUNDED)) { + TypeItem ti = new TypeItem(localData.abc.constants.getMultiname(multinameIndex).getNameWithNamespace(localData.abc.constants, true)); + if (localData.abcIndex.findClass(ti) != null) { + type.setVal(ti); + callType.setVal(TypeItem.UNBOUNDED); + isStatic.setVal(true); + return; + } + Namespace ns = localData.abc.constants.getMultiname(multinameIndex).getNamespace(localData.abc.constants); + if (ns != null) { + String rawNs = ns.getRawName(localData.abc.constants); + AbcIndexing.TraitIndex traitIndex = localData.abcIndex.findScriptProperty(multinameStr, DottedChain.parseWithSuffix(rawNs)); + if (traitIndex != null) { + type.setVal(traitIndex.returnType); + callType.setVal(traitIndex.callReturnType); isStatic.setVal(true); + return; } } } } - - if (type == null) { - type = TypeItem.UNBOUNDED; - } - return type; } @Override @@ -102,8 +106,10 @@ public class GetLexIns extends InstructionDefinition { int multinameIndex = ins.operands[0]; Multiname multiname = localData.getConstants().getMultiname(multinameIndex); Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetLexIns.resolveLexType(localData, null, multinameIndex, isStatic, false); - stack.push(new GetLexAVM2Item(ins, localData.lineStartInstruction, multiname, localData.getConstants(), type, isStatic.getVal())); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetLexIns.resolveLexType(localData, null, multinameIndex, isStatic, type, callType); + stack.push(new GetLexAVM2Item(ins, localData.lineStartInstruction, multiname, localData.getConstants(), type.getVal(), callType.getVal(), isStatic.getVal())); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java index b0cbe5d3f..446f52abc 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/GetPropertyIns.java @@ -31,14 +31,17 @@ import com.jpexs.decompiler.flash.abc.avm2.model.GetLexAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.GetPropertyAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.LocalRegAVM2Item; import com.jpexs.decompiler.flash.abc.avm2.model.SetLocalAVM2Item; +import com.jpexs.decompiler.flash.abc.avm2.parser.script.AbcIndexing; import com.jpexs.decompiler.flash.abc.avm2.parser.script.PropertyAVM2Item; import com.jpexs.decompiler.flash.abc.types.Multiname; +import com.jpexs.decompiler.flash.abc.types.Namespace; import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.ecma.ArrayType; import com.jpexs.decompiler.flash.ecma.EcmaScript; import com.jpexs.decompiler.flash.ecma.ObjectType; import com.jpexs.decompiler.flash.ecma.Undefined; +import com.jpexs.decompiler.graph.DottedChain; import com.jpexs.decompiler.graph.GraphTargetItem; import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.TypeItem; @@ -131,17 +134,20 @@ public class GetPropertyIns extends InstructionDefinition { } } Reference isStatic = new Reference<>(false); - GraphTargetItem type = resolvePropertyType(localData, obj, multiname, isStatic, false); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + resolvePropertyType(localData, obj, multiname, isStatic, type, callType); - stack.push(new GetPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, type, isStatic.getVal())); + stack.push(new GetPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, type.getVal(), callType.getVal(), isStatic.getVal())); } - public static GraphTargetItem resolvePropertyType( + public static void resolvePropertyType( AVM2LocalData localData, GraphTargetItem obj, FullMultinameAVM2Item multiname, - Reference isStatic, boolean call) { - GraphTargetItem type = null; + Reference isStatic, Reference type, Reference callType) { + type.setVal(TypeItem.UNBOUNDED); + callType.setVal(TypeItem.UNBOUNDED); String multinameStr = localData.abc.constants.getMultiname(multiname.multinameIndex).getName(localData.abc.constants, new ArrayList<>(), true, true); if (obj instanceof FindPropertyAVM2Item) { FindPropertyAVM2Item fprop = (FindPropertyAVM2Item) obj; @@ -153,32 +159,40 @@ public class GetPropertyIns extends InstructionDefinition { tsc.getName(localData.abc).getName(localData.abc.constants, new ArrayList<>(), true, true), multinameStr )) { - type = PropertyAVM2Item.multinameToType(tsc.type_index, localData.abc.constants); - break; + GraphTargetItem ty = PropertyAVM2Item.multinameToType(tsc.type_index, localData.abc.constants); + type.setVal(ty); + callType.setVal(ty); + return; } } } - if (type == null) { + if (type.getVal().equals(TypeItem.UNBOUNDED)) { if (localData.abcIndex != null) { String currentClassName = localData.classIndex == -1 ? null : localData.abc.instance_info.get(localData.classIndex).getName(localData.abc.constants).getNameWithNamespace(localData.abc.constants, true).toRawString(); GraphTargetItem thisPropType = TypeItem.UNBOUNDED; if (currentClassName != null) { - if (call) { - thisPropType = localData.abcIndex.findPropertyCallType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, true, true, true); - } else { - thisPropType = localData.abcIndex.findPropertyType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, true, true, true); - } + localData.abcIndex.findPropertyTypeOrCallType(localData.abc, new TypeItem(currentClassName), multinameStr, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, true, true, true, type, callType); } - if (!thisPropType.equals(TypeItem.UNBOUNDED)) { - type = thisPropType; - } - - if (type == null) { + if (type.getVal().equals(TypeItem.UNBOUNDED)) { TypeItem ti = new TypeItem(localData.abc.constants.getMultiname(multiname.multinameIndex).getNameWithNamespace(localData.abc.constants, true)); if (localData.abcIndex.findClass(ti) != null) { - type = ti; + type.setVal(ti); + callType.setVal(TypeItem.UNBOUNDED); isStatic.setVal(true); + return; + } + + Namespace ns = localData.abc.constants.getMultiname(multiname.multinameIndex).getNamespace(localData.abc.constants); + if (ns != null) { + String rawNs = ns.getRawName(localData.abc.constants); + AbcIndexing.TraitIndex traitIndex = localData.abcIndex.findScriptProperty(multinameStr, DottedChain.parseWithSuffix(rawNs)); + if (traitIndex != null) { + type.setVal(traitIndex.returnType); + callType.setVal(traitIndex.callReturnType); + isStatic.setVal(true); //? + return; + } } } } @@ -198,22 +212,21 @@ public class GetPropertyIns extends InstructionDefinition { if (obj instanceof GetPropertyAVM2Item) { if (((GetPropertyAVM2Item) obj).isStatic) { parentStatic = true; - } + } } if (receiverType instanceof ApplyTypeAVM2Item) { - ApplyTypeAVM2Item ati = (ApplyTypeAVM2Item) receiverType; + ApplyTypeAVM2Item ati = (ApplyTypeAVM2Item) receiverType; if (localData.abc.constants.getMultiname(multiname.multinameIndex).needsName()) { - if (call) { - type = TypeItem.UNBOUNDED; /*?*/ - } else { - type = ati.params.get(0); - } + callType.setVal(TypeItem.UNBOUNDED); + /*?*/ + type.setVal(ati.params.get(0)); + return; } else { receiverType = ati.object; - + if (receiverType.equals(new TypeItem("__AS3__.vec.Vector"))) { String paramStr = ati.params.get(0).toString(); - switch(paramStr) { + switch (paramStr) { case "double": case "int": case "uint": @@ -223,26 +236,14 @@ public class GetPropertyIns extends InstructionDefinition { receiverType = new TypeItem("__AS3__.vec.Vector$object"); } } - + //TODO: handle method calls to return proper param type results } - } - if (type == null) - { - if (call) { - type = localData.abcIndex.findPropertyCallType(localData.abc, receiverType, multiname.resolvedMultinameName, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, parentStatic, !parentStatic, false); - } else { - type = localData.abcIndex.findPropertyType(localData.abc, receiverType, multiname.resolvedMultinameName, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, parentStatic, !parentStatic, false); - } } + localData.abcIndex.findPropertyTypeOrCallType(localData.abc, receiverType, multiname.resolvedMultinameName, localData.abc.constants.getMultiname(multiname.multinameIndex).namespace_index, parentStatic, !parentStatic, false, type, callType); } } } - - if (type == null) { - type = TypeItem.UNBOUNDED; - } - return type; } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/InitPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/InitPropertyIns.java index bdc440a08..c8a91c8b0 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/InitPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/InitPropertyIns.java @@ -69,9 +69,11 @@ public class InitPropertyIns extends InstructionDefinition { }*/ Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, false); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); - InitPropertyAVM2Item result = new InitPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, val, type, isStatic.getVal()); + InitPropertyAVM2Item result = new InitPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, val, type.getVal(), callType.getVal(), isStatic.getVal()); SetPropertyIns.handleCompound(localData, obj, multiname, val, output, result); output.add(result); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java index 2c0166f39..76686c104 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/instructions/other/SetPropertyIns.java @@ -361,9 +361,11 @@ public class SetPropertyIns extends InstructionDefinition implements SetTypeIns } */ Reference isStatic = new Reference<>(false); - GraphTargetItem type = GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, false); + Reference type = new Reference<>(null); + Reference callType = new Reference<>(null); + GetPropertyIns.resolvePropertyType(localData, obj, multiname, isStatic, type, callType); - SetPropertyAVM2Item result = new SetPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, value, type, isStatic.getVal()); + SetPropertyAVM2Item result = new SetPropertyAVM2Item(ins, localData.lineStartInstruction, obj, multiname, value, type.getVal(), callType.getVal(), isStatic.getVal()); handleCompound(localData, obj, multiname, value, output, result); SetTypeIns.handleResult(value, stack, output, localData, result, -1); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CallAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CallAVM2Item.java index 726a0fd67..a56fc716f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CallAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CallAVM2Item.java @@ -226,6 +226,12 @@ public class CallAVM2Item extends AVM2Item { @Override public GraphTargetItem returnType() { + if (function instanceof GetPropertyAVM2Item) { + return ((GetPropertyAVM2Item)function).callType; + } + if (function instanceof GetLexAVM2Item) { + return ((GetLexAVM2Item)function).callType; + } return TypeItem.UNBOUNDED; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetLexAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetLexAVM2Item.java index 013fd4769..fb141868f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetLexAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetLexAVM2Item.java @@ -37,14 +37,17 @@ public class GetLexAVM2Item extends AVM2Item implements SimpleValue { public GraphTargetItem type; - public boolean isStatic; + public GraphTargetItem callType; + + public boolean isStatic; private final DottedChain fullPropertyName; - public GetLexAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, Multiname propertyName, AVM2ConstantPool constants, GraphTargetItem type, boolean isStatic) { + public GetLexAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, Multiname propertyName, AVM2ConstantPool constants, GraphTargetItem type, GraphTargetItem callType, boolean isStatic) { super(instruction, lineStartIns, PRECEDENCE_PRIMARY); this.propertyName = propertyName; this.type = type; + this.callType = callType; this.fullPropertyName = propertyName.getNameWithNamespace(constants, true); this.isStatic = isStatic; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetPropertyAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetPropertyAVM2Item.java index e8b3d2435..97f1156af 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetPropertyAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/GetPropertyAVM2Item.java @@ -49,6 +49,8 @@ public class GetPropertyAVM2Item extends AVM2Item { public GraphTargetItem type; + public GraphTargetItem callType; + public boolean isStatic; @Override @@ -131,11 +133,12 @@ public class GetPropertyAVM2Item extends AVM2Item { return null; } - public GetPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, GraphTargetItem propertyName, GraphTargetItem type, boolean isStatic) { + public GetPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, GraphTargetItem propertyName, GraphTargetItem type, GraphTargetItem callType, boolean isStatic) { super(instruction, lineStartIns, PRECEDENCE_PRIMARY); this.object = object; this.propertyName = propertyName; this.type = type; + this.callType = callType; this.isStatic = isStatic; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/InitPropertyAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/InitPropertyAVM2Item.java index 1af7f9554..6ae0c72b7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/InitPropertyAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/InitPropertyAVM2Item.java @@ -44,6 +44,8 @@ public class InitPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, A public GraphTargetItem type; + public GraphTargetItem callType; + public boolean isStatic; @Override @@ -63,11 +65,12 @@ public class InitPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, A this.declaration = declaration; } - public InitPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, FullMultinameAVM2Item propertyName, GraphTargetItem value, GraphTargetItem type, boolean isStatic) { + public InitPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, FullMultinameAVM2Item propertyName, GraphTargetItem value, GraphTargetItem type, GraphTargetItem callType, boolean isStatic) { super(instruction, lineStartIns, PRECEDENCE_ASSIGMENT, value); this.object = object; this.propertyName = propertyName; this.type = type; + this.callType = callType; this.isStatic = isStatic; } @@ -87,7 +90,7 @@ public class InitPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, A @Override public GraphTargetItem getObject() { - return new GetPropertyAVM2Item(getInstruction(), getLineStartIns(), object, propertyName, type, isStatic); + return new GetPropertyAVM2Item(getInstruction(), getLineStartIns(), object, propertyName, type, callType, isStatic); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetPropertyAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetPropertyAVM2Item.java index 43fd1e875..cbd272d4e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetPropertyAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/SetPropertyAVM2Item.java @@ -51,6 +51,8 @@ public class SetPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, As public GraphTargetItem type; + public GraphTargetItem callType; + public boolean isStatic; @Override @@ -77,12 +79,13 @@ public class SetPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, As } } - public SetPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, GraphTargetItem propertyName, GraphTargetItem value, GraphTargetItem type, boolean isStatic) { + public SetPropertyAVM2Item(GraphSourceItem instruction, GraphSourceItem lineStartIns, GraphTargetItem object, GraphTargetItem propertyName, GraphTargetItem value, GraphTargetItem type, GraphTargetItem callType, boolean isStatic) { super(instruction, lineStartIns, PRECEDENCE_ASSIGMENT); this.object = object; this.propertyName = propertyName; this.value = value; this.type = type; + this.callType = callType; this.isStatic = isStatic; } @@ -106,7 +109,7 @@ public class SetPropertyAVM2Item extends AVM2Item implements SetTypeAVM2Item, As @Override public GraphTargetItem getObject() { - return new GetPropertyAVM2Item(getInstruction(), getLineStartIns(), object, propertyName, type, isStatic); + return new GetPropertyAVM2Item(getInstruction(), getLineStartIns(), object, propertyName, type, callType, isStatic); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java index 7e1135aa8..6e9f172eb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/AbcIndexing.java @@ -34,6 +34,7 @@ import com.jpexs.decompiler.flash.tags.ABCContainerTag; import com.jpexs.decompiler.graph.DottedChain; import com.jpexs.decompiler.graph.GraphTargetItem; import com.jpexs.decompiler.graph.TypeItem; +import com.jpexs.helpers.Reference; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -354,6 +355,18 @@ public final class AbcIndexing { return classes.get(cls); } + public void findPropertyTypeOrCallType(ABC abc, GraphTargetItem cls, String propName, int ns, boolean findStatic, boolean findInstance, boolean findProtected, Reference type, Reference callType) { + TraitIndex traitIndex = findProperty(new PropertyDef(propName, cls, abc, ns), findStatic, findInstance, findProtected); + if (traitIndex == null) { + type.setVal(TypeItem.UNBOUNDED); + callType.setVal(TypeItem.UNBOUNDED); + } else { + type.setVal(traitIndex.returnType); + callType.setVal(traitIndex.callReturnType); + } + } + + public GraphTargetItem findPropertyType(ABC abc, GraphTargetItem cls, String propName, int ns, boolean findStatic, boolean findInstance, boolean findProtected) { TraitIndex traitIndex = findProperty(new PropertyDef(propName, cls, abc, ns), findStatic, findInstance, findProtected); if (traitIndex == null) { diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java index 72dc0c94b..7c2b51ade 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicAirDecompileTest.java @@ -251,7 +251,8 @@ public class ActionScript3ClassicAirDecompileTest extends ActionScript3Decompile + "s = v.join(\"x\");\r\n" + "i = int(v.join(\"x\"));\r\n" + "i = int(prot);\r\n" - + "s = prot;\r\n", + + "s = prot;\r\n" + + "s = String(getTimer());\r\n", false); } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java index 7393a461b..6dc84b8a5 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/as3decompile/ActionScript3ClassicDecompileTest.java @@ -250,7 +250,8 @@ public class ActionScript3ClassicDecompileTest extends ActionScript3DecompileTes + "s = v.join(\"x\");\r\n" + "i = int(v.join(\"x\"));\r\n" + "i = int(prot);\r\n" - + "s = prot;\r\n", + + "s = prot;\r\n" + + "s = String(getTimer());\r\n", false); } diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.air.swf index 88d8ed447ae7122801ea78130bdafefb29b6e1b5..c7f8e86dc5a8c41cac3cb5b545f74dd9d13d8364 100644 GIT binary patch literal 21924 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 vl?&o3Ko;&Rw literal 21897 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%0DYRIF)GT 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 U2cV|15dY$_G6RAC2jEa2!@QR!?f?J) diff --git a/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf b/libsrc/ffdec_lib/testdata/as3_new/bin/as3_new.flex.swf index 837392d73879e0db6e4b5722d63d1ff6aab155f2..598b1864aff42b17e07c46a9b0d86281cfb86311 100644 GIT binary patch delta 28026 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 ZrRD#{!9kl2Xn2YYj@AQw`42T+o$&0r5O@Fp diff --git a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestConvert.as b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestConvert.as index e3c983303..9709b079c 100644 --- a/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestConvert.as +++ b/libsrc/ffdec_lib/testdata/as3_new/src/tests/TestConvert.as @@ -1,6 +1,7 @@ package tests { import tests_classes.TestConvertParent; + import flash.utils.getTimer; public class TestConvert extends TestConvertParent { @@ -50,6 +51,8 @@ package tests i = int(prot); s = prot; + + s = String(getTimer()); } } }