diff --git a/src/org/objectweb/asm/commons/package.html b/src/org/objectweb/asm/commons/package.html deleted file mode 100644 index 4ce0db85..00000000 --- a/src/org/objectweb/asm/commons/package.html +++ /dev/null @@ -1,48 +0,0 @@ - - -
-Provides some useful class and method adapters. The preferred way of using -these adapters is by chaining them together and to custom adapters (instead of -inheriting from them). Indeed this approach provides more combination -possibilities than inheritance. For instance, suppose you want to implement an -adapter MyAdapter than needs sorted local variables and intermediate stack map -frame values taking into account the local variables sort. By using inheritance, -this would require MyAdapter to extend AnalyzerAdapter, itself extending -LocalVariablesSorter. But AnalyzerAdapter is not a subclass of -LocalVariablesSorter, so this is not possible. On the contrary, by using -delegation, you can make LocalVariablesSorter delegate to AnalyzerAdapter, -itself delegating to MyAdapter. In this case AnalyzerAdapter computes -intermediate frames based on the output of LocalVariablesSorter, and MyAdapter -can add new locals by calling the newLocal method on LocalVariablesSorter, and -can get the stack map frame state before each instruction by reading the locals -and stack fields in AnalyzerAdapter (this requires references from MyAdapter -back to LocalVariablesSorter and AnalyzerAdapter). - \ No newline at end of file diff --git a/src/org/objectweb/asm/package.html b/src/org/objectweb/asm/package.html deleted file mode 100644 index 2d4a7656..00000000 --- a/src/org/objectweb/asm/package.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -Provides a small and fast bytecode manipulation framework. - --The ASM framework is organized -around the {@link org.objectweb.asm.ClassVisitor ClassVisitor}, -{@link org.objectweb.asm.FieldVisitor FieldVisitor}, -{@link org.objectweb.asm.MethodVisitor MethodVisitor} and -{@link org.objectweb.asm.AnnotationVisitor AnnotationVisitor} abstract classes, -which allow one to visit the fields, methods and annotations of a class, -including the bytecode instructions of each method. - -
-In addition to these main abstract classes, ASM provides a {@link -org.objectweb.asm.ClassReader ClassReader} class, that can parse an -existing class and make a given visitor visit it. ASM also provides -a {@link org.objectweb.asm.ClassWriter ClassWriter} class, which is -a visitor that generates Java class files. - -
-In order to generate a class from scratch, only the {@link -org.objectweb.asm.ClassWriter ClassWriter} class is necessary. Indeed, -in order to generate a class, one must just call its visitXxx -methods with the appropriate arguments to generate the desired fields -and methods. See the "helloworld" example in the ASM distribution for -more details about class generation. - -
-In order to modify existing classes, one must use a {@link -org.objectweb.asm.ClassReader ClassReader} class to analyze -the original class, a class modifier, and a {@link org.objectweb.asm.ClassWriter -ClassWriter} to construct the modified class. The class modifier -is just a {@link org.objectweb.asm.ClassVisitor ClassVisitor} -that delegates most of the work to another {@link org.objectweb.asm.ClassVisitor -ClassVisitor}, but that sometimes changes some parameter values, -or call additional methods, in order to implement the desired -modification process. In order to make it easier to implement such -class modifiers, the {@link org.objectweb.asm.ClassVisitor -ClassVisitor} and {@link org.objectweb.asm.MethodVisitor MethodVisitor} -classes delegate by default all the method calls they receive to an -optional visitor. See the "adapt" example in the ASM -distribution for more details about class modification. - -
-The size of the core ASM library, asm.jar, is only 45KB, which is much -smaller than the size of the -BCEL library (504KB), and than the -size of the -SERP library (150KB). ASM is also -much faster than these tools. Indeed the overhead of a load time class -transformation process is of the order of 60% with ASM, 700% or more with BCEL, -and 1100% or more with SERP (see the test/perf directory in the ASM -distribution)! - -@since ASM 1.3 - - diff --git a/src/org/objectweb/asm/signature/package.html b/src/org/objectweb/asm/signature/package.html deleted file mode 100644 index 0c07d120..00000000 --- a/src/org/objectweb/asm/signature/package.html +++ /dev/null @@ -1,36 +0,0 @@ - - -
-Provides support for type signatures. - -@since ASM 2.0 - - diff --git a/src/org/objectweb/asm/tree/analysis/package.html b/src/org/objectweb/asm/tree/analysis/package.html deleted file mode 100644 index 228da023..00000000 --- a/src/org/objectweb/asm/tree/analysis/package.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - --Provides a framework for static code analysis based on the asm.tree package. -
- --Basic usage: -
- --ClassReader cr = new ClassReader(bytecode); -ClassNode cn = new ClassNode(); -cr.accept(cn, ClassReader.SKIP_DEBUG); - -List methods = cn.methods; -for (int i = 0; i < methods.size(); ++i) { - MethodNode method = (MethodNode) methods.get(i); - if (method.instructions.size() > 0) { - Analyzer a = new Analyzer(new BasicInterpreter()); - a.analyze(cn.name, method); - Frame[] frames = a.getFrames(); - // Elements of the frames arrray now contains info for each instruction - // from the analyzed method. BasicInterpreter creates BasicValue, that - // is using simplified type system that distinguishes the UNINITIALZED, - // INT, FLOAT, LONG, DOUBLE, REFERENCE and RETURNADDRESS types. - ... - } -} -- -
-@since ASM 1.4.3 -
- - - diff --git a/src/org/objectweb/asm/tree/package.html b/src/org/objectweb/asm/tree/package.html deleted file mode 100644 index 940b8767..00000000 --- a/src/org/objectweb/asm/tree/package.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - --Provides an ASM visitor that constructs a tree representation of the -classes it visits. This class adapter can be useful to implement "complex" -class manipulation operations, i.e., operations that would be very hard to -implement without using a tree representation (such as optimizing the number -of local variables used by a method). -
- --However, this class adapter has a cost: it makes ASM bigger and slower. Indeed -it requires more than twenty new classes, and multiplies the time needed to -transform a class by almost two (it is almost two times faster to read, "modify" -and write a class with a ClassVisitor than with a ClassNode). This is why -this package is bundled in an optional asm-tree.jar library that -is separated from (but requires) the asm.jar library, which contains -the core ASM framework. This is also why it is recommended -not to use this class adapter when it is possible. -
- --The root class is the ClassNode, that can be created from existing bytecode. For example: -
- -- ClassReader cr = new ClassReader(source); - ClassNode cn = new ClassNode(); - cr.accept(cn, true); -- -
-Now the content of ClassNode can be modified and then -serialized back into bytecode: -
- -- ClassWriter cw = new ClassWriter(true); - cn.accept(cw); -- -
-Using a simple ClassVisitor it is possible to create MethodNode instances per-method. -In this example MethodNode is acting as a buffer that is flushed out at visitEnd() call: -
- -- ClassReader cr = new ClassReader(source); - ClassWriter cw = new ClassWriter(); - ClassVisitor cv = new ClassVisitor(cw) { - public MethodVisitor visitMethod(int access, String name, - String desc, String signature, String[] exceptions) { - final MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); - MethodNode mn = new MethodNode(access, name, desc, signature, exceptions) { - public void visitEnd() { - // transform or analyze method code using tree API - accept(mv); - } - }; - } - }; - cr.accept(cv, true); -- -
-Several strategies can be used to construct method code from scratch. The first -option is to create a MethodNode, and then create XxxInsnNode instances and -add them to the instructions list: -
- --MethodNode m = new MethodNode(...); -m.instructions.add(new VarInsnNode(ALOAD, 0)); -... -- -
-Alternatively, you can use the fact that MethodNode is a MethodVisitor, and use -that to create the XxxInsnNode and add them to the instructions list through -the standard MethodVisitor methods: -
- --MethodNode m = new MethodNode(...); -m.visitVarInsn(ALOAD, 0); -... -- -
-If you cannot generate all the instructions in sequential order, i.e. if you -need to save some pointer in the instruction list and then insert instructions -at that place after other instructions have been generated, you can use InsnList -methods insert() and insertBefore() to insert instructions at a saved pointer. -
- --MethodNode m = new MethodNode(...); -m.visitVarInsn(ALOAD, 0); -AbstractInsnNode ptr = m.instructions.getLast(); -m.visitVarInsn(ALOAD, 1); -// inserts an instruction between ALOAD 0 and ALOAD 1 -m.instructions.insert(ptr, new VarInsnNode(ALOAD, 0)); -... -- -
-If you need to insert instructions while iterating over an existing instruction -list, you can also use several strategies. The first one is to use a -ListIterator over the instruction list: -
- --ListIterator it = m.instructions.iterator(); -while (it.hasNext()) { - AbstractInsnNode n = (AbstractInsnNode) it.next(); - if (...) { - it.add(new VarInsnNode(ALOAD, 0)); - } -} -- -
-It is also possible to convert an instruction list into an array and iterate trough -array elements: -
- --AbstractInsnNode[] insns = m.instructions.toArray(); -for(int i = 0; i<insns.length; i++) { - AbstractInsnNode n = insns[i]; - if (...) { - m.instructions.insert(n, new VarInsnNode(ALOAD, 0)); - } -} -- -
-If you want to insert these instructions through the MethodVisitor methods, -you can use another instance of MethodNode as a MethodVisitor and then -insert instructions collected by that instance into the instruction list. -For example: -
- --AbstractInsnNode[] insns = m.instructions.toArray(); -for(int i = 0; i<insns.length; i++) { - AbstractInsnNode n = insns[i]; - if (...) { - MethodNode mn = new MethodNode(); - mn.visitVarInsn(ALOAD, 0); - mn.visitVarInsn(ALOAD, 1); - m.instructions.insert(n, mn.instructions); - } -} -- -
-@since ASM 1.3.3 -
- - - diff --git a/src/org/objectweb/asm/util/package.html b/src/org/objectweb/asm/util/package.html deleted file mode 100644 index 91d74204..00000000 --- a/src/org/objectweb/asm/util/package.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -Provides ASM visitors that can be useful for programming and -debugging purposes. These class visitors are normally not used by applications -at runtime. This is why they are bundled in an optional asm-util.jar -library that is separated from (but requires) the asm.jar library, -which contains the core ASM framework. - -@since ASM 1.3.2 - - diff --git a/src/org/objectweb/asm/xml/asm-xml.dtd b/src/org/objectweb/asm/xml/asm-xml.dtd deleted file mode 100644 index b862085e..00000000 --- a/src/org/objectweb/asm/xml/asm-xml.dtd +++ /dev/null @@ -1,349 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/org/objectweb/asm/xml/package.html b/src/org/objectweb/asm/xml/package.html deleted file mode 100644 index d7bbe660..00000000 --- a/src/org/objectweb/asm/xml/package.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Provides SAX 2.0 adapters for ASM -visitors to convert classes to and from XML. -These adapters can be chained with other SAX compliant content handlers and -filters, eg. XSLT or XQuery engines. This package is bundled as -a separate asm-xml.jar library and requires asm.jar. --ASMContentHandler and SAXClassAdapter/SAXCodeAdapter -are using asm-xml.dtd. -Here is the example of bytecode to bytecode XSLT transformation. - -
- SAXTransformerFactory saxtf = ( SAXTransformerFactory) TransformerFactory.newInstance(); - Templates templates = saxtf.newTemplates( xsltSource); - - TransformerHandler handler = saxtf.newTransformerHandler( templates); - handler.setResult( new SAXResult( new ASMContentHandler( outputStream, computeMax))); - - ClassReader cr = new ClassReader( bytecode); - cr.accept( new SAXClassAdapter( handler, cr.getVersion(), false), false); -- -See JAXP and SAX documentation for more detils. - -
-There are few illustrations of the bytecode transformation with XSLT in -examples directory. The following XSLT procesors has been tested. - -
-- -@since ASM 1.4.3 - - - diff --git a/src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java b/src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java index b69a3dc0..e5529c30 100644 --- a/src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java +++ b/src/the/bytecode/club/bytecodeviewer/BytecodeViewer.java @@ -83,6 +83,7 @@ import the.bytecode.club.bytecodeviewer.plugin.PluginManager; * Make the tabs menu and middle mouse button click work on the tab itself not just the close button. * * before 3.0.0: + * EVERYTHING ON THE FUCKING GITHUB ISSUES LOL * make it use that global last used inside of export as jar * Spiffy up the plugin console with hilighted lines * Take https://github.com/ptnkjke/Java-Bytecode-Editor visualize @@ -98,7 +99,7 @@ import the.bytecode.club.bytecodeviewer.plugin.PluginManager; * * -----2.9.9-----: * 08/01/2015 - Fixed a pingback concurrency exception issue. - * 08/01/2015 - Fixed a typo for FernFlower decompiler. + * 08/03/2015 - Fixed a typo for FernFlower decompiler. * * @author Konloch * diff --git a/src/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java b/src/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java index 37aa8ae0..bbd1a990 100644 --- a/src/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java +++ b/src/the/bytecode/club/bytecodeviewer/decompilers/KrakatauDecompiler.java @@ -140,6 +140,7 @@ public class KrakatauDecompiler extends Decompiler { BytecodeViewer.python, "-O", //love you storyyeller <3 BytecodeViewer.krakatauWorkingDirectory + BytecodeViewer.fs + "decompile.py", + "-skip", //love you storyyeller <3 "-nauto", "-path", BytecodeViewer.rt+";"+tempJar.getAbsolutePath(),-
-- - -Engine - javax.xml.transform.TransformerFactory property - - - -jd.xslt -jd.xml.xslt.trax.TransformerFactoryImpl -- - -Saxon -net.sf.saxon.TransformerFactoryImpl -- - -Caucho -com.caucho.xsl.Xsl -- - -Xalan interpeter -org.apache.xalan.processor.TransformerFactory -- -Xalan xsltc -org.apache.xalan.xsltc.trax.TransformerFactoryImpl -