Graham
dc75b05429
Switch back to the native Pack200 implementation for the moment
...
This isn't ideal as it's deprecated. However, while Apache Harmony's
unpack200 implementation seems fine, its pack200 implementation doesn't
work with the client and produces invalid output.
I've fixed some of the easy to fix bugs, but tracking down any remaining
bugs will be difficult - it'll involve tracing through the native
unpack200 code.
When Pack200 is removed from the JDK, hopefully someone will take up the
mantle of maintaining it outside of the JDK. If that doesn't happen,
we'll have to consider writing our own Pack200 implementation,
extracting OpenJDK's implementation out of the tree or fixing the bugs
in Apache Harmony.
5 years ago
Graham
c769feab3e
Add manifest support to writeJar
5 years ago
Graham
3ae85d50ef
Add skeleton writeJs5 method
5 years ago
Graham
02ed6d7455
Make writeJar and writePack accept an OutputStream
5 years ago
Graham
06b8af41e2
Replace Stream with Sequence
5 years ago
Graham
c2809a16f8
Add OverrideTransformer
5 years ago
Graham
e9a9a8f962
Format with ktlint
5 years ago
Graham
15e9636b79
Replace Guava ImmutableList with Kotlin List in ClassPath
5 years ago
Graham
86fe02f32d
Remove @JvmStatic annotations
...
We only need to keep it on the main() methods for the moment.
5 years ago
Graham
0b834fb223
Remove @Throws annotations
...
We don't need them now we have no more Java code left.
5 years ago
Graham
c10134c1f6
Tidy toPrettyString()
...
I missed this during the initial InsnNodeUtils port.
5 years ago
Graham
e05653cdcc
Rename util to common
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
bfdfc2f211
Simplify ClassPath::get with computeIfAbsent
...
Unfortunately we can't do this in populateInherited{Field,Method} sets,
as they are recursive.
5 years ago
Graham
d2bd8c69f4
Convert ClassPath to Kotlin
5 years ago
Graham
862d4a3504
Convert ReflectionClassMetadata to Kotlin
5 years ago
Graham
3ee6d57ba9
Convert AsmClassMetadata to Kotlin
5 years ago
Graham
e5af454815
Convert ClassMetadata to Kotlin
...
The dependency/interface properties are translated to getDependency and
getInterface. I don't know if it is possible to fix this, but it won't matter
when the rest of the codebase is converted to Kotlin.
5 years ago
Graham
07bb22f795
Convert Library to Kotlin
5 years ago
Graham
b1582ce3a0
Use `//` for single line comments in .kt files
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
c02fe030fa
Convert ClassForNameRemapper to Kotlin
5 years ago
Graham
0b3f24fed2
Convert InsnMatcher to Kotlin
5 years ago
Graham
e4fe120bf7
Convert MemberDesc and MemberRef to Kotlin
5 years ago
Graham
eec9279a2c
Add hasCode() method
5 years ago
Graham
3f1d2dc4a3
Convert Transformer to Kotlin
5 years ago
Graham
0cb0658f61
Add shorthand MemberDesc constructors
5 years ago
Graham
0a5901cde4
Add shorthand MemberRef constructors
5 years ago
Graham
bccdf75b37
Move openrs2-natives-all and pack200 to dependencyManagement
5 years ago
Graham
a26efcb30c
Use for-each to iterate over InsnLists
5 years ago
Graham
70ccdfa526
Add removeDeadCode method
5 years ago
Graham
8ecbe7bb82
Remove unused openrs2.root property
5 years ago
Graham
3926f7735e
Add FCONST and DCONST groups to InsnMatcher
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
4788f8314e
Clear ClassPath cache after remapping
5 years ago
Graham
6e750b008f
Replace hard-coded 2 with GZIP_HEADER.length
5 years ago
Graham
23a85fd820
Add method for deleting MethodNode arguments
5 years ago
Graham
46f908bdb0
Replace ClassForNameTransformer
...
This commit stops ClassForNameTransformer from extending Transformer and
renames it. I think this makes sense, as we don't use it like a normal
Transformer.
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
1216812c8a
Add InsnNodeUtils.toString() method
...
Useful for debugging.
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
7747fe457a
Remove dummy local variables
5 years ago
Graham
f1c6f074a1
Add virtual instruction support to hasSideEffects() and StackMetadata
5 years ago
Graham
8c1f2c7b2f
Add hasSideEffects() function to InsnNodeUtils
5 years ago