Graham
6ad99645dc
Replace for loop with enhanced for
5 years ago
Graham
0823a0253f
Convert UnusedArgTransformer to Kotlin
5 years ago
Graham
e05653cdcc
Rename util to common
5 years ago
Graham
f56b288663
Convert OpaquePredicateTransformer to Kotlin
5 years ago
Graham
1c2d2f1264
Convert ResetTransformer to Kotlin
5 years ago
Graham
1153165227
Simplify condition in ResetTransformer
5 years ago
Graham
87cbb83fcf
Convert BitwiseOpTransformer to Kotlin
5 years ago
Graham
957c0820a3
Convert CounterTransformer to Kotlin
5 years ago
Graham
00526587b0
Convert DummyLocalTransformer to Kotlin
5 years ago
Graham
3e0e7824e0
Convert InsnListUtils to Kotlin
5 years ago
Graham
8020ac98ab
Convert InsnNodeUtils to Kotlin
5 years ago
Graham
fdcc5a217f
Rename hasSideEffects() to isPure()
...
Its output has been inverted, as this wouldn't make sense otherwise.
5 years ago
Graham
64b8ea5fe7
Reduce method visibility in Transformers
5 years ago
Graham
11050ce735
Convert OriginalNameTransformer to Kotlin
5 years ago
Graham
d7e3799f5c
Convert RemapTransformer to Kotlin
5 years ago
Graham
fb18a7227d
Convert FieldOrderTransformer to Kotlin
5 years ago
Graham
1338c80083
Convert ExceptionTracingTransformer to Kotlin
5 years ago
Graham
a2afcf341b
Convert CanvasTransformer to Kotlin
5 years ago
Graham
77d3489b23
Convert BitShiftTransformer to Kotlin
5 years ago
Graham
368df81bc8
Convert AccessTransformer to Kotlin
5 years ago
Graham
8b57525c88
Move InsnList-related methods to InsnListUtils
5 years ago
Graham
db785e38d0
Convert MethodNodeUtils to Kotlin
5 years ago
Graham
862c79e31c
Rename deleteArgument() to removeArgument() for consistency
5 years ago
Graham
e68fed7a9e
Convert StackMetadata to Kotlin
5 years ago
Graham
eec9279a2c
Add hasCode() method
5 years ago
Graham
0cb0658f61
Add shorthand MemberDesc constructors
5 years ago
Graham
0a5901cde4
Add shorthand MemberRef constructors
5 years ago
Graham
6c3d98702c
Remove reset methods
5 years ago
Graham
446a72abc5
Make package-private classes, methods and fields public
...
This will make refactoring the client code into packages easier.
5 years ago
Graham
f6f810de2e
Remove mutually-recursive dummy method calls
...
This is a little bit grim and probably not completely safe in all cases,
but it works well enough on the client.
Ideally I think I'd do it with a dominator tree calculated from a call
graph aware of integer constants and conditional calls, but that's quite
complicated (especially given how the existing code in the
DummyArgTransformer works).
5 years ago
Graham
a7c1ae3597
Remove recursive dummy arguments
5 years ago
Graham
6520c15795
Remove redundant final modifiers
5 years ago
Graham
d34b1e7e72
Combine analyze and getFrames
5 years ago
Graham
28369f1d75
Add UnusedArgTransformer
5 years ago
Graham
d20e3997b4
Split transformMethod into {pre,post}TransformMethod
5 years ago
Graham
145ed6b1ee
Add classPath and library arguments to all Transformer methods
5 years ago
Graham
b7347b2632
Move ArgRef to the top level
...
I'm going to use it in another Transformer.
5 years ago
Graham
f426f16d72
Simplify DummyLocalTransformer
...
The obfuscated client only contains dummy locals of type int.
5 years ago
Graham
557f2fb504
Move remapping into a RemapTransformer
...
This allows us to run the remapping immediately between
OriginalNameTransformer and DummyArgTransformer.
5 years ago
Graham
1319295d77
Separate remapping from the write{Pack,Jar} methods
...
This is a prerequisite for removing dummy arguments - before the methods
are remapped, removing an argument might cause the method to conflict
with another method with the same name and descriptor as the replacement
descriptor.
5 years ago
Graham
318f906ab5
Make DummyLocalTransformer type-sensitive
...
This catches a few more dummy locals than the previous code.
5 years ago
Graham
7b3ec975d9
Inline constants in DummyArgTransformer
...
This is a prerequisite for us to be able to remove the constant
arguments.
5 years ago
Graham
4cfb9d9f69
Remove dummy branch expressions instead of inserting POPs
...
This prevents Fernflower from inserting dummy boolean variables.
5 years ago
Graham
3242356c80
Remove unused throws declarations
5 years ago
Graham
ccea2f0f8e
Rename DummyTransformer to DummyArgTransformer
5 years ago
Graham
7747fe457a
Remove dummy local variables
5 years ago
Graham
517032959e
Use immutable collections types from Guava
5 years ago
Graham
271d2126c0
Use InsnList's iterator instead of getFirst()/getNext()
5 years ago
Graham
24ce226e5c
Replace int with var for consistency
5 years ago
Graham
8613763520
Inline bitwise AND/OR/XOR methods
5 years ago