JPEXS Free Flash Decompiler Issue Tracker

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

: The issue tracker is now writable again and logged users can download files too. But note that our support is very LIMITED.

List of issuesList of issues

#1807 Error #1064, maybe related to constructprop vs callproperty?
Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: new Help

> What steps will reproduce the problem? I decompiled the Vex 3 swf and went to the Main script and added a space somewhere and saved. > What is the expected output? What do you see instead? The function unlockAchievement (line 2018) has the following P-code (excerpt): getlocal3 findpropstrict QName(PackageNamespace("flash.utils"),"getDefinitionByName") getlocal 4 callproperty QName(PackageNamespace("flash.utils"),"getDefinitionByName"), 1 construct 0 After modifying the file it changes to: getlocal3 findpropstrict QName(PackageNamespace("flash.utils"),"getDefinitionByName") getlocal 4 constructprop QName(PackageNamespace("flash.utils"),"getDefinitionByName"), 1 getglobalscope call 0 The debugger shows an error where those pieces of code are located and flash shows me Error #1064. Using the P-code editor I can replace the entire new "code" section with the old code section and it doesn't result in that problem anymore, maybe I should try replacing portions of P-code. Sadly, it always reverts after another edit. > What version of the product are you using? Is it "nightly build"? Which operating system do you have? I'm using the official version 15.1.0 on Win7. > Please provide any additional information below. If the problem is related to a SWF file, attach it here, otherwise we can't help you. Attached the file, but if it helps, here's the function causing the problems: private function unlockAchievement(param1:int) : void { var _loc2_:Array = achievementsLog["achievement" + param1]; trace("Achievement " + param1 + " unlocked! - create window"); var _loc3_:* = new achievementUnlocked(); _loc3_.x = 640 + _loc3_.width; _loc3_.y = 100 + 100 * achievementUnlocked.achievementUnlocks; _loc3_.achievementName.text = _loc2_[0]; addChild(_loc3_); adjustColour.colourChange(_loc3_.bgColours,this.getColour(this.level)[0],this.getColour(th is.level)[1],this.getColour(this.level)[2],this.getColour(this.level)[3]); var _loc4_:* = "achievement" + param1 + "Button"; _loc3_.icon = new getDefinitionByName(_loc4_)(); _loc3_.icon.x = 31; _loc3_.icon.y = 43; _loc3_.addChild(_loc3_.icon); API.unlockMedal(_loc2_[0]); this.saveGame(); } Also, is there a way to make certain functions unmodifyable?
user
Oh, forgot to mention that _loc3_.icon = new getDefinitionByName(_loc4_)() is the line that causes problems.
user
Sorry for posting this in an incomplete state, but I just replaced the new snippet with the old snippet instead of replacing the entire code sections and that fixes it, too. So that really seems to be the problem.