+ update 2020: WARNING - support of the decompiler is now VERY LIMITED. There are no active developers. This means we will NOT develop new features and/or fix most of bugs. We left the tracker running in case somebody from community would like to work on it. Sorry for the inconvenience.
State: closed new: Initial state. As long as issue is in this state, the work on the issue has not yet begun. opened: Opened state means developer started working on the issue. Feature/Fix will probably be in the next release. postponed: This means developer is not working on it now, for some reason it cannot be implemented now. Issue may be opened again in the future. upgraded: Issue is in upgraded state when developer made changes to the program and new version was released. closed: This means the user is satisfied with issue results and no more changes are needed. invalid: These issues cannot be solved. ignored: Developer decided to take no action on this issue. returned: Program changes were made but user is not satisfied and returned the issue.
> What steps will reproduce the problem?
While loop that contains an increment or decrement in its condition part decompiles into
infinite loop (do ... while(true)).
> What is the expected output? What do you see instead?
b = a * 2;
> What version of the product are you using? On what operating system?
still have 2 flaws:
1. For the given example it misses else clause in
} <=== here other while should go to else clause
You can see it in source as well as in p-code:
loc00ec:Push register4 register4
2. It works for decrement, but the same snippet with increment produces wrong code and
raises a few exceptions:
???? 10, 2013 2:53:40 PM com.jpexs.decompiler.flash.SWFInputStream readActionListAtPos
SEVERE: Disassembly exception
at java.util.Stack.peek(Unknown Source)
at java.util.Stack.pop(Unknown Source)