You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Notice that the code above is only meant for debugging purposes and is semantically mundane.
As it turns out, this code hits a TODO in CodeShrinkVisitor.java and, more specifically, in method checkInline():
if (assignInline) {
// TODO?return;
}
My current solution to this problem is removing the special check for assignInline. If the if clause above is commented out, everything seems to be working fine. To make sure that this modification generates sane code, I decompiled a widely used Android application using an upstream and a patched version of jadx. The code generated using the two jadx variants was diff'ed and the output was examined by hand.
@skylot, as usual, I'm still in the process of examining this further :)
The text was updated successfully, but these errors were encountered:
Merging nested
if
regions that contain assignment instructions may lead to the following decompilation error:The following minified smali test-case can be used to trigger the buggy behavior.
Notice that the code above is only meant for debugging purposes and is semantically mundane.
As it turns out, this code hits a TODO in CodeShrinkVisitor.java and, more specifically, in method
checkInline()
:My current solution to this problem is removing the special check for
assignInline
. If theif
clause above is commented out, everything seems to be working fine. To make sure that this modification generates sane code, I decompiled a widely used Android application using an upstream and a patched version of jadx. The code generated using the two jadx variants wasdiff
'ed and the output was examined by hand.@skylot, as usual, I'm still in the process of examining this further :)
The text was updated successfully, but these errors were encountered: