Releases: leibnitz27/cfr
0.140
Remove truncation which can break HUGE exception handlers. (Thanks Janosz)
Loosen lambda capture restriction (improves lambda resugaring for deeply nested lambdas).
Handle possible NPE in local expression rewriter.
Infer a little more information about unavailable-but-caught types. (Thanks zbzzn)
Tidied help. (Thanks dearappauthors)
0.139
Double comparison inversion is not always safe wrt NaN - (a<b) is NOT !(a>=b).
Handle (with warning) some code that (naughtily, but obviously) splits exceptions across unsafe operations.
More aggressive inlining of switch code for cases that would fail to decompile.
0.138
Handle corrupt class signatures (Thanks itzsomebody)
Be more lenient with mismatching bootstrap arguments ( " )
Fix precedence issue with unary minus. (Thanks littlestar)
If we've failed to split lifetimes, leaving too narrow a type, force explicit casts. (Thanks hostalp)
Fix for failure when validating casts against missing class.
Fix for NPE when explicitly decompiling an inner class with missing outer. (Thanks abec)
Improve displayed class name for anonymous classes (normally won't appear, but could be forced) ( " )
0.137
Several improvements to resugaring of ECJ output. (Thanks christianh)
Don't fail on corrupted descriptors where method is marked as varargs. (Thanks abec)
Don't hide a POD cast if it's being used to determine a runtime boxed type. (Thanks abec)
Make --sugarenums false a bit more legible (even if the output is still unusable java ;) ).
0.136
Fix for ordering of inlined lvalue mutations (Thanks abec, karls)
Improvement to lifetime auditing allows inlining of anonymous arrays with mutators.
Improve generated code for prechange assignments. (check out IncrTest5!!)
Reconsider JSRs if they've been expanded.
Relabel private static accessors if they're lifted to an outer class.
Improve lambda desugaring when we don't have target class available (improves reconstruction of java8+ code using jre6!)
Improve lifetime auditing on ternary roll-up.
0.135
First mavenized release (though still being a bit manual in process).
- Improve (and document!) API.
- Minor fix for case insensitive filesystem notification
- Fixes for some nested method scoped classes, where they could be declared inside the scope they're needed.
- Fix for a possible incorrect generic binding.
0.102
0_102
0.91
- Allow jar processing to take a regex of which classes to extract (--jarfilter)
- Tidy errors
- Push returns early when reordering to make control flow as simple as possible. Explicit support for ternaries which jump in to identical returns. (improves quality of some dex2jar code).
- Shrink catch block if it's over aggressive.
- Improve trailing goto removal once code at structurable stage.
- Handle conditionals that jump straight into a fall through (was leaving a goto)
- Don't allow static initialiser to be marked as an override (oops!)
0.90 - Fix finally induced issues
- Fix issue where aggressive conditional to return pushing was dropping a side effect, when inside a block with a finally clause
- Fix over extension of switch contained in finally clause, leading to default block adopting code outside switch
- Fix case where unbound generic with no typing info could suggest a variable name of '$'.
0.89 - Improve SSA
- Correctly keep SSA idents on entry and exit - (should have done this ages ago….) Fixes incrtest3,4,5….. (thanks hgraf)
- Slight improvement to failing switches (thanks abec)