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. - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Engine -javax.xml.transform.TransformerFactory property -
jd.xsltjd.xml.xslt.trax.TransformerFactoryImpl
Saxonnet.sf.saxon.TransformerFactoryImpl
Cauchocom.caucho.xsl.Xsl
Xalan interpeterorg.apache.xalan.processor.TransformerFactory
Xalan xsltcorg.apache.xalan.xsltc.trax.TransformerFactoryImpl
-
- -@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(),