JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#1270 convert_i: adding extra cast with each save
Author: user koen
Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: closed Help

> What steps will reproduce the problem? Have a trait with a convert_i statement. Initial script does not show any cast statement. Then after each save of the ActionScript, an extra cast is added to the statement: int(int(int(int(int(int(int(int(int(int(int(int(int(objects.getTick() + _loc4_))))))))))))); findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") findpropstrict Qname(PackageNamespace(""),"int") getlex Qname(ProtectedNamespace("namespace"),"objects") callproperty Multiname("getTick",[very_long_namespace_array]) 0 getlocal 4 add callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 callproperty Qname(PackageNamespace(""),"int") 1 convert_i setproperty Qname(PrivateNamespace("namespace"),"property") > What is the expected output? What do you see instead? I can imagine the output will be different when saving the first time, but the result should be the same when saving multiple times (without making changes). I noticed the convert_i was in the original script, but did not appear in the ActionScript. The first cast appears after saving for the first time. The cast is not needed, it assigns an int value to an int property. > What version of the product are you using? Is it "nightly build"? Which operating system do you have? 9.0.0 build 1501 > Please provide any additional information below. If the problem is related to a SWF file, attach it here, otherwise we can't help you.
user
Update: there is no initial convert_i for this statement in the original SWF. It looks like the problem is related to "very_long_namespace_array" (enumerates 9 namespaces). Initial it was short: getlex Qname(ProtectedNamespace("namespace"),"objects") callproperty Qname(PackageNamespace(""),"getTick") 0 getlocal 4 add
admin
I need sample SWF file. I tried to reproduce it with P-code you supplied but without success.
user
I can report this as well. The source I'm looking at is the Gemcraft source code (any version). Recompilation of the Main module, or just about any other module, will add new int(), Boolean() or Number() casts at each compile. Not all numbers seem to be affected, but most are; so far, I've only seen it with numbers, though. I haven't noticed any pattern to when it does/doesn't, but I haven't looked all that hard.
user
Sorry, meant to say Gemcraft Chasing Shadows.
admin
This is fixed in version 14.0.0
State: new→upgraded
admin
State: upgraded→closed