Graham
0c1291b8ff
Implement common superclass/interface algorithm in getCommonSupertype
...
The previous implementation simply returned java/lang/Object when given
two object types, which resulted in local object variables assigned in
more than one place being given a type of java/lang/Object. The
variables often had ugly casts wherever they were used.
The new implementation is from ASM's ClassWriter.
4 years ago
Graham
34110df5f4
Improve heuristic for converting while loops to for loops
...
We now only convert while loops to for loops if the same variable is
used in the initialisation statement, condition and increment statement.
4 years ago
Graham
49c640733c
Remove issingle condition in matchFor
...
It produces rather ugly output where a while loop is more appropriate.
4 years ago
Graham
4d46ef6312
Use more deterministic local variable names
...
This commit bases local variable names on the original instruction
index, which produces much more consistent results than the variable
slot/version.
4 years ago
Graham
964f7292a8
Defer refreshVarNames until debug names have been assigned
...
This ensures none of the names collide with a field.
4 years ago
Graham
17c4438d37
Fix renaming variable declarations without assignments
4 years ago
Graham
7a34b8e85a
Add variable declaration support to iterateExprents
4 years ago
Graham
9addbd6349
Use names from OriginalPcTable earlier during the decompilation process
4 years ago
Graham
eaa8533e74
Use names from MethodParameters earlier during the decompilation process
...
This fixes compatibility with anonymous inner classes.
4 years ago
Graham
1d2b66221a
Update dependencies
4 years ago
Graham
10a6efaa93
Update openrs2-parent
4 years ago
Graham
2bf9bb4e9b
Use mapped local variable names from the OriginalPcTable
4 years ago
Graham
b7ff940440
Fix references to parameters renamed with the MethodParameters table
4 years ago
Graham
843dbb5278
Merge remote-tracking branch 'upstream/master'
4 years ago
Graham
b3a455fb1a
Relax isExprentIndependent
...
I think the EXPRENT_FIELD condition exists in case the field's
initializer depends on a prior field in the same class.
We already handle this case in the deobfuscator, which ensures fields
appear in exactly the order in which they are first written to in the
<init> and <clinit> methods. (This isn't perfect, as we ignore the
problem of multiple <init> methods writing fields in different orders to
each other, but it seems good enough for the client.)
4 years ago
Tagir Valeev
1685759f61
Use Math.min/max
...
GitOrigin-RevId: 4fafd6b7ef8fd2e8ac99b6e0c8af2d092ded2526
5 years ago
Tagir Valeev
8382c008b2
Fixed unnecessarily escaped character
...
GitOrigin-RevId: 9532833be54e94cfe74dee90f4ca815790d7f5be
5 years ago
Tagir Valeev
488da329f4
Fix warnings (redundant boolean operation and others)
...
GitOrigin-RevId: 115ba7dfd69a2b37963430aac7e979271c0331db
5 years ago
Graham
1526cea2a5
Annotate variables in catch statements with @Pc
5 years ago
Graham
d2718bd7b0
Improve code for setting the bytecodeOffset in VarDefinitionHelper
5 years ago
Graham
eb536c94d7
Add bytecodeOffset to stack variables where it is unique
5 years ago
Graham
35228e6d63
Populate bytecodeOffset of definitions created in VarDefinitionHelper
5 years ago
Graham
b4c1bab1b6
Add separate bytecodeOffset variable to VarExprent
...
I think it's best not to conflate this with visibleOffset, as
visibleOffset is not always set to bytecode_offset and it is also used
for other things (e.g. looking up debug variable names).
5 years ago
Justin
0d2a413b2a
Fix finally processor instruction comparison
5 years ago
Graham
a7f0e61c74
Revert "Relax operand equality condition in try/finally detection"
...
This reverts commit 7e2421df89
.
5 years ago
Graham
a6b6f0a54b
Set visibleOffset of IINC VarExprents
5 years ago
Graham
fd7a30c710
Exclude pull requests to master from the deploy stage
5 years ago
Graham
c7079537a3
Add @Pc annotations to local variable declarations
...
This isn't perfect. It doesn't handle stack variables yet. I think there
are also some places where Fernflower fiddles around with VarExprents
where we'll need to copy the bytecode offset.
5 years ago
Graham
19cae4fa08
Pass StructMethod to processBlock()
...
This will allow us to get at the OriginalPcTable.
5 years ago
Graham
391e495e5e
Sort imports in ExprProcessor
5 years ago
Graham
52a8a00698
Add OriginalPcTable attribute decoder
5 years ago
Graham
9b04d3ea36
Switch from Jenkins to Drone
5 years ago
Graham
468d99b7fd
Update openrs2-parent
5 years ago
Vladimir Ilmov
e35da00aec
KT-25937 Decompilation to Java makes UI lag roughly every 2 seconds, and is not cancellable
...
GitOrigin-RevId: 58ce5d601bcebb5826cb938f6ea365fa245e7be1
5 years ago
Graham
97d8a34a0e
[maven-release-plugin] prepare for next development iteration
5 years ago
Graham
d7b75d83bf
[maven-release-plugin] prepare release v1.0.3
5 years ago
Graham
32d668c776
Merge remote-tracking branch 'upstream/master'
5 years ago
Graham
317e26e299
Add char literal type inference to add/sub operators
5 years ago
Graham
24c93c3c50
Update dependencies
5 years ago
Graham
404134cb5e
Remove VARTYPE_CHAR from guessType
...
This significantly reduces the number of integers that are incorrectly
converted to char literals.
5 years ago
Vladimir Krivosheev
246de918cc
remove author (only some, where it is ok)
...
GitOrigin-RevId: 7dbab7524fe4efc5d17a04b95dee88b6f80fbe8d
5 years ago
Graham
94cc5ff549
[maven-release-plugin] prepare for next development iteration
5 years ago
Graham
f91220dd08
[maven-release-plugin] prepare release v1.0.2
5 years ago
Graham
ebf3595a75
Update dependencies
5 years ago
Graham
56519aad73
Update openrs2-parent to build against Java 8
5 years ago
md_5
4ca282df94
IDEA-204998: Use decompile classes in preference to library classes
...
GitOrigin-RevId: c600f67f720c2b74fe9009bb3dfb91b2dd6e868c
5 years ago
Graham
dc13765694
[maven-release-plugin] prepare for next development iteration
5 years ago
Graham
535a608d1f
[maven-release-plugin] prepare release v1.0.1
5 years ago
Graham
5b8c2d3321
Update assertj-core
5 years ago
Graham
950b8d7feb
Update openrs2-parent
5 years ago