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

#2297 Branching Optimization Bug When Saving
Date created:
Type: bug
Visibility: Everybody
Assigned to:
State: closed Help

> What steps will reproduce the problem? download the attached swf, go to simulation.entities and Entity_Thwomp, press Edit ActionScript, add nothing (press spacebar somewhere) and press save > What is the expected output? Line 135 original code if(this.isHorizontal) { if(Math.abs(_loc8_) < _loc9_) { ... } } else if(Math.abs(_loc7_) < _loc9_) { ... } > What do you see instead? The else if gets converted to just an if, so it ignores the this.isHorizontal condition > What version of the product are you using? Is it "nightly build"? Which operating system do you have? It affects 21.0.4, 20.1.0, 17.0.4 and earlier > Please provide any additional information below. Other examples: Line 2172 of editor/Editor.as Note: I had to downgrade from 21.0.4 to 20.1.0 because there was a different error when trying to edit and save if(_loc7_.y < 0) { if(_loc8_.Len() > _loc7_.x) { continue; } } else if(Math.abs(_loc8_.x) > _loc7_.x || Math.abs(_loc8_.y) > _loc7_.y) { continue; } _loc3_ = _loc4_; The bottom else if gets converted to if(!(Math.abs(_loc8_.x) > _loc7_.x || Math.abs(_loc8_.y) > _loc7_.y)) { _loc3_ = _loc4_; } This ignores the _loc7_.y < 0 condition Next example Under simualtion.entities/Entity_Drone_Chaser line 117 if(_loc12_) { _loc14_ = param1.GetGridCoordinateFromWorldspace_1D(pos.x); _loc15_ = param1.GetGridCoordinateFromWorldspace_1D(pos.y); _loc16_ = param1.SweepHorizontal(_loc15_,_loc15_,_loc14_,_loc13_); if((_loc17_ = param1.GetGridCoordinateFromWorldspace_1D(_loc6_.x)) < Math.min(_loc14_,_loc16_) || _loc17_ > Math.max(_loc14_,_loc16_)) { continue; } } else { _loc18_ = param1.GetGridCoordinateFromWorldspace_1D(pos.y); _loc19_ = param1.GetGridCoordinateFromWorldspace_1D(pos.x); _loc20_ = param1.SweepVertical(_loc19_,_loc19_,_loc18_,_loc13_); if((_loc21_ = param1.GetGridCoordinateFromWorldspace_1D(_loc6_.y)) < Math.min(_loc18_,_loc20_) || _loc21_ > Math.max(_loc18_,_loc20_)) { continue; } } if(ChooseNextDirAndGoal_HELPER_TestDir(param1,_loc8_,next_goal)) { ... } The bottom else gets converted to _loc18_ = param1.GetGridCoordinateFromWorldspace_1D(pos.y); _loc19_ = param1.GetGridCoordinateFromWorldspace_1D(pos.x); _loc20_ = param1.SweepVertical(_loc19_,_loc19_,_loc18_,_loc13_); if(!((_loc21_ = param1.GetGridCoordinateFromWorldspace_1D(_loc6_.y)) < Math.min(_loc18_,_loc20_) || _loc21_ > Math.max(_loc18_,_loc20_))) { if(ChooseNextDirAndGoal_HELPER_TestDir(param1,_loc8_,next_goal)) { ... } } This ignores the _loc12_ condition
DownloadNv2.swf (552 KiB)
admin
This is fixed in nightly 2899.
State: new→upgraded
user
Looks good, thanks!
admin
You're welcome.
State: upgraded→closed