Wrong code generated when MyClass.super.method()
Java class file shrinker, optimizer, obfuscator, and preverifier
Brought to you by:
guardsquare
This is a regression of version 5.3.1, it worked in 5.3.
When using a anonymous inner class + super.method(), for example:
public void doSomething() { new Runnable() { public void run() { MyClass.super.doSomething(); } }.run(); }
Proguard generated code uses "this" instead of "super", resulting in an infinite recursive invocation in this case.
I tried to create a reproducer project (attached, see README), but unfortunately it does not reproduce the bug. So I guess the conditions to raise the issue are a bit more complicated than this, but maybe this is enough for you to understand what could happen here...
ProGuard 5.3.1 only changed the performance of the configuration parsing, compared to 5.3 Could you double-check the version numbers?
Indeed, I got the wersions wrong, it worked in ProGuard 5.2.1 and was broken by Proguard 5.3.
What's the status of this one? I'm experiencing the same problem, but also couldn't reproduce it with smaller project.
I managed to create a reproducible test case (see attached proguard-bug2.tar.gz).
Additionally, I attached a patch to fix the issue.
This problem should be solved in ProGuard update 5.3.2.