: WARNING - support of the decompiler is now VERY LIMITED. There are no active developers. This means waiting times in the issue tracker are very long and mostly depend on community. Sorry for the inconvenience.

List of issuesList of issues

#105 Infinite loops
Author: user pepka
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS3Decompilation
State: closed Help

> What steps will reproduce the problem? If statment with an empty body inside of the loop leads to strange decompilation in the attached sample. > What is the expected output? What do you see instead? do { if (!(var1.x + var1.y <= param1)) { } var2--; } while (var2 >= 0); is decompiled as do { if(var1.x+var1.y>param1) { } var2--; if(var2<0) { } else { continue; } } while(true); Actually I saw such a pattern before and it still persists - if(var2<0) { } else { continue; } is wrapped into infinite loop instead of if(var2<0) { break; } which would be still not exact decompilation but could at least save the program's behaviour. See also another example in attachment - double_break.swf. > What version of the product are you using? On what operating system? 1.6.0u1
Downloadempty_if.swf (1 KiB)DownloadMain.as (1 KiB)Downloaddouble_break.swf (1 KiB)DownloadMain.as (1 KiB)
admin
State: new→opened
admin
version 1.6.1 was released. This should be fixed.
State: opened→upgraded
user
Hi, now for empty_if.swf it become more wierd: if(!isNaN(param1)) { while(if(var1.x+var1.y>param1) { }, var2--, var2>=0) { } } And for double_break.swf just persists.
admin
State: upgraded→opened
admin
Version 1.6.2 was released. Loop detection algorithm is completely new, so the loop problems should be history, try it.
State: opened→upgraded
user
Hi, these two have gone! Thanks!
admin
State: upgraded→closed
 
Google Translate: Translate to Czech Translate to Slovak Translate to Russian Translate to Hungarian Translate to Swedish Translate to French Translate to German Translate to Spanish Translate to Italian
Change style: oceanic classic