Graham
f11ed78169
Replace openrs2.dev with openrs2.org
4 years ago
Graham
d12a2dab06
Split custom merge logic into a separate shouldMerge function
4 years ago
covers1624
9e525f7aeb
Revert change to FieldExprent#getExprentUse
...
Revert part of a change introduced upstream. 81faff674c (diff-e057d0d70e5b15f5e12ec86ac46c85eeR57)
This upstream change causes local variables to not be inlined in many cases, and makes decomp very messy for the reason of 'thread safety'.
4 years ago
Graham
1f2ee3c81f
Inline assignments made before a return
...
Extracted from https://github.com/MinecraftForge/ForgeFlower/blob/master/FernFlower-Patches/0030-Improve-stack-var-processor-output.patch
4 years ago
Graham
74c7174bbf
Re-enable simpleMerge with additional scoping restrictions
...
I've changed it to only merge variables within the same basic block,
which improves the output significantly.
4 years ago
LexManos
fda8f42dd0
Fix local variables incorrectly merging.
4 years ago
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
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
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
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
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
317e26e299
Add char literal type inference to add/sub operators
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
md_5
4ca282df94
IDEA-204998: Use decompile classes in preference to library classes
...
GitOrigin-RevId: c600f67f720c2b74fe9009bb3dfb91b2dd6e868c
5 years ago
Graham
7e2421df89
Relax operand equality condition in try/finally detection
...
This isn't ideal and probably isn't safe in the general case, but it
does fix the only case where we couldn't deinline a finally block. (In
turn, this caused further problems because the SSA code is not aware of
the monitor variables inserted by Fernflower if it can't deinline a
finally block.)
5 years ago
Graham
4aa496dff8
Disable variable merging
...
This tightens the scope of variables, which is nicer for readability -
particularly as Fernflower likes sticking variable declarations in the
middle of long if/else chains.
5 years ago
Tagir Valeev
14255d2f89
Extract common parts from 'if'
...
GitOrigin-RevId: 60ebdfdb9588caf907ef111e3ed08e799c0a7d17
5 years ago
Sergey Ignatov
877b0bb707
there's no need to use <? extends String>, because String is final
...
sometimes it's necessary, e.g. when we're substituting any generic with the real type
GitOrigin-RevId: a8c453813b04213f7e24dd80bc7ccec4eb78efcb
5 years ago
Rustam Vishnyakov
e2d2701ca9
EditorConfig documentation test
...
GitOrigin-RevId: fd52ace3d7a32ecd02c2c5ab90e077967604c15e
5 years ago
Egor Zhdan
88db2ab37a
Cleanup: NotNull/Nullable
...
GitOrigin-RevId: b8e892f32ea84c2115973155dba7127b892cc36e
5 years ago
Anna Kozlova
a431a3c93e
constructor reference: don't ignore constructor parameters during method reference inference (IDEA-185578)
...
GitOrigin-RevId: e836468e05db28157713e9edd3c70382f8ecdebc
5 years ago
Egor Zhdan
20d0e0f1e5
Cleanup: NotNull/Nullable
...
GitOrigin-RevId: b8e892f32ea84c2115973155dba7127b892cc36e
5 years ago
Aleksey Rostovskiy
89e9a42b63
get rid of intellij.build.toolbox.litegen parameter and use BuildOptions.TOOLBOX_LITE_GEN_STEP to skip it instead
...
GitOrigin-RevId: 9aac8ee4ed1ebf2a29de18a238825fafb1ab88f9
6 years ago
Alexandr Suhinin
d05fff192f
[duplicates] enable duplicates analysis in PyCharm/WebStorm/PhpStorm/RubyMine
...
GitOrigin-RevId: 1545b79fdca4888f4b94f47f22703fd37694fa7a
6 years ago
Anton Makeev
24a695344e
Merge remote-tracking branch 'origin/master' into amakeev/gradle
...
GitOrigin-RevId: f9a633252daf311ecab19002c0f4757052eee9dc
6 years ago
Anton Makeev
c25785846b
Merge branch 'master' into amakeev/gradle
...
# Conflicts:
# community/plugins/gradle/src/org/jetbrains/plugins/gradle/service/settings/IdeaGradleProjectSettingsControlBuilder.java
GitOrigin-RevId: d931e798108685731bf185f7c2e3221680b8e5a2
6 years ago