Skip to content

ClassLoading 0.5.0

Compare
Choose a tag to compare
@TeamworkGuy2 TeamworkGuy2 released this 05 Dec 15:58
· 2 commits to master since this release

Decompilation to source code in-progress and first round trip compile/decompile unit tests

Added

  • A new twg2.jbcm.ir package with helper classes for tracking state and data related to decompilation
  • CodeOffsetGetter interface implemented by ChangeCpIndex
  • CodeFlow for helping analyze potential code flow paths through a method
  • Unit tests with tests which perform compilation of source code and check decompilation back to intermediate view

Changed

  • CodeToSource is in-progress, simple code can be converted, loops, switch statements, and interface/dynamic method calls are still TODO
  • Split IoUtility into new CodeUtility class and moved static no-op CpIndexChanger and CodeOffsetChanger into their respective interfaces
  • Renamed ByteCodeConsumer -> BytcodeConsumer
  • Moved MethodStack to new twg2.jbcm.ir package
  • Lots of new functionality in Opcodes to support to source decompilation
  • Extensive CompileSource changes/improvements to support simple use cases like compiling in-memory (although a physical temp file still gets written under the hood)
  • Moved LookupswitchOffsetModifier and TableswitchOffsetModifier out of IoUtility and into their own classes

Removed

  • CpIndexChanger.shiftIndex() interface method since it was unused and CodeOffsetChanger is equivalent
  • Unused classes: Offset, OffsetOpcode, Opcode, OpcodeObject