Initial commit

This commit is contained in:
github-classroom[bot] 2023-10-01 10:17:02 +00:00 committed by GitHub
commit fd9bc87c00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 1021 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
out

2
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# Default ignored files
/workspace.xml

View File

@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -0,0 +1,19 @@
<component name="libraryTable">
<library name="asm-7.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/lib/asm-util-7.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-tree-7.1.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-7.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/lib/asm-7.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-util-7.1-javadoc.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-tree-7.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/lib/asm-util-7.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-tree-7.1-sources.jar!/" />
<root url="jar://$PROJECT_DIR$/lib/asm-7.1-sources.jar!/" />
</SOURCES>
</library>
</component>

10
.idea/misc.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ASMPluginConfiguration">
<asm skipDebug="false" skipFrames="false" skipCode="false" expandFrames="false" />
<groovy codeStyle="LEGACY" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="10" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/starter-lab-02-simple-bytecode-metrics.iml" filepath="$PROJECT_DIR$/starter-lab-02-simple-bytecode-metrics.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,5 @@
9
README.md,8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
A
src/Analyzer.java,0/b/0b96f4b9af2dc03180ffa9b36f0b5aaa1c0fdf6d

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

31
README.md Normal file
View File

@ -0,0 +1,31 @@
# Lab 2 - Software Performance 2023
This is Lab 2 of the **Software Performance** course at USI.
Go to [this Lab on iCorsi](https://www.icorsi.ch/course/view.php?id=16963).
## Submission Info
Property | Value
------------ | -------------
First Name | ...
Last Name | ...
## Submission Checklist
Please complete this checklist (turn [ ] into [X]) before you submit:
- [ ] I completed the above Submission Info
- [ ] I built the project in IntelliJ (Build > Build Project)
- [ ] I ran test/test.sh and verified that it runs (and fails)
- [ ] I implemented the analysis in src/Analyzer.java, outputting:
- [ ] Number of classes (incl. interfaces and enums)
- [ ] Number of concrete non-native, non-abstract methods (methods with code)
- [ ] Total number of instructions (ignoring instructions with opcode -1)
- [ ] Total number of instructions by opcode (ignoring instructions with opcode -1)
- [ ] Total number of method invocation instructions (== call sites)
- [ ] Total number of conditional branch instructions (excluding GOTO, but including multi-way branches)
- [ ] I wrote the source code myself and did not look at the source code of my classmates
- [ ] I ran test/test.sh and verified that it runs and passes
- [ ] I committed my changes (at least one commit, but possibly many)
- [ ] I pushed my commits to GitHub

BIN
lib/asm-7.1-javadoc.jar Normal file

Binary file not shown.

BIN
lib/asm-7.1-sources.jar Normal file

Binary file not shown.

BIN
lib/asm-7.1.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/asm-tree-7.1.jar Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/asm-util-7.1.jar Normal file

Binary file not shown.

60
src/Analyzer.java Normal file
View File

@ -0,0 +1,60 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.MethodNode;
public class Analyzer {
// TODO add data structure to keep statistics
public static void main(final String[] args) throws IOException {
final String jarFileName = args[0];
System.out.println("Analyzing "+jarFileName);
final JarFile jar = new JarFile(jarFileName);
analyzeJar(jar);
// TODO output statistics
}
private static void analyzeJar(final JarFile jar) throws IOException {
final Enumeration<JarEntry> entries = jar.entries();
while (entries.hasMoreElements()) {
final JarEntry entry = entries.nextElement();
analyzeJarEntry(entry, jar);
}
}
private static void analyzeJarEntry(final JarEntry entry, final JarFile jar) throws IOException {
if (!entry.isDirectory() && entry.getName().endsWith(".class")) {
System.out.println(" File "+entry.getName());
final InputStream is = jar.getInputStream(entry);
final ClassReader classReader = new ClassReader(is);
final ClassNode classNode = new ClassNode();
classReader.accept(classNode, ClassReader.SKIP_FRAMES);
analyzeClass(classNode);
}
}
private static void analyzeClass(final ClassNode classNode) {
System.out.println(" Class "+classNode.name);
final List<MethodNode> methods = classNode.methods;
for (final MethodNode methodNode : methods) {
analyzeMethod(methodNode);
}
}
private static void analyzeMethod(final MethodNode methodNode) {
System.out.println(" Method "+methodNode.name+methodNode.desc);
// TODO implement required analysis
}
// TODO possibly add extra methods (adding classes is fine, too)
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="asm-7.1" level="project" />
</component>
</module>

BIN
test/asm-6.2.1.jar Normal file

Binary file not shown.

View File

@ -0,0 +1,842 @@
Analyzing asm-6.2.1.jar
File module-info.class
Class module-info
File org/objectweb/asm/AnnotationVisitor.class
Class org/objectweb/asm/AnnotationVisitor
Method <init>(I)V
Method <init>(ILorg/objectweb/asm/AnnotationVisitor;)V
Method visit(Ljava/lang/String;Ljava/lang/Object;)V
Method visitEnum(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitAnnotation(Ljava/lang/String;Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
Method visitArray(Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
Method visitEnd()V
File org/objectweb/asm/AnnotationWriter.class
Class org/objectweb/asm/AnnotationWriter
Method <init>(Lorg/objectweb/asm/SymbolTable;ZLorg/objectweb/asm/ByteVector;Lorg/objectweb/asm/AnnotationWriter;)V
Method <init>(Lorg/objectweb/asm/SymbolTable;Lorg/objectweb/asm/ByteVector;Lorg/objectweb/asm/AnnotationWriter;)V
Method visit(Ljava/lang/String;Ljava/lang/Object;)V
Method visitEnum(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitAnnotation(Ljava/lang/String;Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
Method visitArray(Ljava/lang/String;)Lorg/objectweb/asm/AnnotationVisitor;
Method visitEnd()V
Method computeAnnotationsSize(Ljava/lang/String;)I
Method putAnnotations(ILorg/objectweb/asm/ByteVector;)V
Method computeParameterAnnotationsSize(Ljava/lang/String;[Lorg/objectweb/asm/AnnotationWriter;I)I
Method putParameterAnnotations(I[Lorg/objectweb/asm/AnnotationWriter;ILorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/Attribute$Set.class
Class org/objectweb/asm/Attribute$Set
Method <init>()V
Method addAttributes(Lorg/objectweb/asm/Attribute;)V
Method toArray()[Lorg/objectweb/asm/Attribute;
Method contains(Lorg/objectweb/asm/Attribute;)Z
Method add(Lorg/objectweb/asm/Attribute;)V
File org/objectweb/asm/Attribute.class
Class org/objectweb/asm/Attribute
Method <init>(Ljava/lang/String;)V
Method isUnknown()Z
Method isCodeAttribute()Z
Method getLabels()[Lorg/objectweb/asm/Label;
Method read(Lorg/objectweb/asm/ClassReader;II[CI[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Attribute;
Method write(Lorg/objectweb/asm/ClassWriter;[BIII)Lorg/objectweb/asm/ByteVector;
Method getAttributeCount()I
Method computeAttributesSize(Lorg/objectweb/asm/SymbolTable;)I
Method computeAttributesSize(Lorg/objectweb/asm/SymbolTable;[BIII)I
Method putAttributes(Lorg/objectweb/asm/SymbolTable;Lorg/objectweb/asm/ByteVector;)V
Method putAttributes(Lorg/objectweb/asm/SymbolTable;[BIIILorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/ByteVector.class
Class org/objectweb/asm/ByteVector
Method <init>()V
Method <init>(I)V
Method <init>([B)V
Method putByte(I)Lorg/objectweb/asm/ByteVector;
Method put11(II)Lorg/objectweb/asm/ByteVector;
Method putShort(I)Lorg/objectweb/asm/ByteVector;
Method put12(II)Lorg/objectweb/asm/ByteVector;
Method put112(III)Lorg/objectweb/asm/ByteVector;
Method putInt(I)Lorg/objectweb/asm/ByteVector;
Method put122(III)Lorg/objectweb/asm/ByteVector;
Method putLong(J)Lorg/objectweb/asm/ByteVector;
Method putUTF8(Ljava/lang/String;)Lorg/objectweb/asm/ByteVector;
Method encodeUTF8(Ljava/lang/String;II)Lorg/objectweb/asm/ByteVector;
Method putByteArray([BII)Lorg/objectweb/asm/ByteVector;
Method enlarge(I)V
File org/objectweb/asm/ClassReader.class
Class org/objectweb/asm/ClassReader
Method <init>([B)V
Method <init>([BII)V
Method <init>([BIZ)V
Method <init>(Ljava/io/InputStream;)V
Method <init>(Ljava/lang/String;)V
Method readStream(Ljava/io/InputStream;Z)[B
Method getAccess()I
Method getClassName()Ljava/lang/String;
Method getSuperName()Ljava/lang/String;
Method getInterfaces()[Ljava/lang/String;
Method accept(Lorg/objectweb/asm/ClassVisitor;I)V
Method accept(Lorg/objectweb/asm/ClassVisitor;[Lorg/objectweb/asm/Attribute;I)V
Method readModule(Lorg/objectweb/asm/ClassVisitor;Lorg/objectweb/asm/Context;IILjava/lang/String;)V
Method readField(Lorg/objectweb/asm/ClassVisitor;Lorg/objectweb/asm/Context;I)I
Method readMethod(Lorg/objectweb/asm/ClassVisitor;Lorg/objectweb/asm/Context;I)I
Method readCode(Lorg/objectweb/asm/MethodVisitor;Lorg/objectweb/asm/Context;I)V
Method readLabel(I[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Label;
Method createLabel(I[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Label;
Method createDebugLabel(I[Lorg/objectweb/asm/Label;)V
Method readTypeAnnotations(Lorg/objectweb/asm/MethodVisitor;Lorg/objectweb/asm/Context;IZ)[I
Method getTypeAnnotationBytecodeOffset([II)I
Method readTypeAnnotationTarget(Lorg/objectweb/asm/Context;I)I
Method readParameterAnnotations(Lorg/objectweb/asm/MethodVisitor;Lorg/objectweb/asm/Context;IZ)V
Method readElementValues(Lorg/objectweb/asm/AnnotationVisitor;IZ[C)I
Method readElementValue(Lorg/objectweb/asm/AnnotationVisitor;ILjava/lang/String;[C)I
Method computeImplicitFrame(Lorg/objectweb/asm/Context;)V
Method readStackMapFrame(IZZLorg/objectweb/asm/Context;)I
Method readVerificationTypeInfo(I[Ljava/lang/Object;I[C[Lorg/objectweb/asm/Label;)I
Method getFirstAttributeOffset()I
Method readAttribute([Lorg/objectweb/asm/Attribute;Ljava/lang/String;II[CI[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Attribute;
Method getItemCount()I
Method getItem(I)I
Method getMaxStringLength()I
Method readByte(I)I
Method readUnsignedShort(I)I
Method readShort(I)S
Method readInt(I)I
Method readLong(I)J
Method readUTF8(I[C)Ljava/lang/String;
Method readUTF(I[C)Ljava/lang/String;
Method readUTF(II[C)Ljava/lang/String;
Method readStringish(I[C)Ljava/lang/String;
Method readClass(I[C)Ljava/lang/String;
Method readModule(I[C)Ljava/lang/String;
Method readPackage(I[C)Ljava/lang/String;
Method readConstantDynamic(I[C)Lorg/objectweb/asm/ConstantDynamic;
Method readConst(I[C)Ljava/lang/Object;
File org/objectweb/asm/ClassTooLargeException.class
Class org/objectweb/asm/ClassTooLargeException
Method <init>(Ljava/lang/String;I)V
Method getClassName()Ljava/lang/String;
Method getConstantPoolCount()I
File org/objectweb/asm/ClassVisitor.class
Class org/objectweb/asm/ClassVisitor
Method <init>(I)V
Method <init>(ILorg/objectweb/asm/ClassVisitor;)V
Method visit(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
Method visitSource(Ljava/lang/String;Ljava/lang/String;)V
Method visitModule(Ljava/lang/String;ILjava/lang/String;)Lorg/objectweb/asm/ModuleVisitor;
Method visitNestHostExperimental(Ljava/lang/String;)V
Method visitOuterClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitNestMemberExperimental(Ljava/lang/String;)V
Method visitInnerClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
Method visitField(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lorg/objectweb/asm/FieldVisitor;
Method visitMethod(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;
Method visitEnd()V
File org/objectweb/asm/ClassWriter.class
Class org/objectweb/asm/ClassWriter
Method <init>(I)V
Method <init>(Lorg/objectweb/asm/ClassReader;I)V
Method visit(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
Method visitSource(Ljava/lang/String;Ljava/lang/String;)V
Method visitModule(Ljava/lang/String;ILjava/lang/String;)Lorg/objectweb/asm/ModuleVisitor;
Method visitNestHostExperimental(Ljava/lang/String;)V
Method visitOuterClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitNestMemberExperimental(Ljava/lang/String;)V
Method visitInnerClass(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
Method visitField(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Lorg/objectweb/asm/FieldVisitor;
Method visitMethod(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Lorg/objectweb/asm/MethodVisitor;
Method visitEnd()V
Method toByteArray()[B
Method replaceAsmInstructions([BZ)[B
Method getAttributePrototypes()[Lorg/objectweb/asm/Attribute;
Method newConst(Ljava/lang/Object;)I
Method newUTF8(Ljava/lang/String;)I
Method newClass(Ljava/lang/String;)I
Method newMethodType(Ljava/lang/String;)I
Method newModule(Ljava/lang/String;)I
Method newPackage(Ljava/lang/String;)I
Method newHandle(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
Method newHandle(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
Method newConstantDynamic(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)I
Method newInvokeDynamic(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)I
Method newField(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
Method newMethod(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
Method newNameType(Ljava/lang/String;Ljava/lang/String;)I
Method getCommonSuperClass(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
Method getClassLoader()Ljava/lang/ClassLoader;
File org/objectweb/asm/ConstantDynamic.class
Class org/objectweb/asm/ConstantDynamic
Method <init>(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)V
Method getName()Ljava/lang/String;
Method getDescriptor()Ljava/lang/String;
Method getBootstrapMethod()Lorg/objectweb/asm/Handle;
Method getBootstrapMethodArguments()[Ljava/lang/Object;
Method equals(Ljava/lang/Object;)Z
Method hashCode()I
Method toString()Ljava/lang/String;
File org/objectweb/asm/Constants.class
Class org/objectweb/asm/Constants
Method <init>()V
File org/objectweb/asm/Context.class
Class org/objectweb/asm/Context
Method <init>()V
File org/objectweb/asm/CurrentFrame.class
Class org/objectweb/asm/CurrentFrame
Method <init>(Lorg/objectweb/asm/Label;)V
Method execute(IILorg/objectweb/asm/Symbol;Lorg/objectweb/asm/SymbolTable;)V
File org/objectweb/asm/Edge.class
Class org/objectweb/asm/Edge
Method <init>(ILorg/objectweb/asm/Label;Lorg/objectweb/asm/Edge;)V
File org/objectweb/asm/FieldVisitor.class
Class org/objectweb/asm/FieldVisitor
Method <init>(I)V
Method <init>(ILorg/objectweb/asm/FieldVisitor;)V
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitEnd()V
File org/objectweb/asm/FieldWriter.class
Class org/objectweb/asm/FieldWriter
Method <init>(Lorg/objectweb/asm/SymbolTable;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitEnd()V
Method computeFieldInfoSize()I
Method putFieldInfo(Lorg/objectweb/asm/ByteVector;)V
Method collectAttributePrototypes(Lorg/objectweb/asm/Attribute$Set;)V
File org/objectweb/asm/Frame.class
Class org/objectweb/asm/Frame
Method getAbstractTypeFromApiFormat(Lorg/objectweb/asm/SymbolTable;Ljava/lang/Object;)I
Method getAbstractTypeFromInternalName(Lorg/objectweb/asm/SymbolTable;Ljava/lang/String;)I
Method getAbstractTypeFromDescriptor(Lorg/objectweb/asm/SymbolTable;Ljava/lang/String;I)I
Method <init>(Lorg/objectweb/asm/Label;)V
Method copyFrom(Lorg/objectweb/asm/Frame;)V
Method setInputFrameFromDescriptor(Lorg/objectweb/asm/SymbolTable;ILjava/lang/String;I)V
Method setInputFrameFromApiFormat(Lorg/objectweb/asm/SymbolTable;I[Ljava/lang/Object;I[Ljava/lang/Object;)V
Method getInputStackSize()I
Method getLocal(I)I
Method setLocal(II)V
Method push(I)V
Method push(Lorg/objectweb/asm/SymbolTable;Ljava/lang/String;)V
Method pop()I
Method pop(I)V
Method pop(Ljava/lang/String;)V
Method addInitializedType(I)V
Method getInitializedType(Lorg/objectweb/asm/SymbolTable;I)I
Method execute(IILorg/objectweb/asm/Symbol;Lorg/objectweb/asm/SymbolTable;)V
Method merge(Lorg/objectweb/asm/SymbolTable;Lorg/objectweb/asm/Frame;I)Z
Method merge(Lorg/objectweb/asm/SymbolTable;I[II)Z
Method accept(Lorg/objectweb/asm/MethodWriter;)V
Method putAbstractType(Lorg/objectweb/asm/SymbolTable;ILorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/Handle.class
Class org/objectweb/asm/Handle
Method <init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method <init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
Method getTag()I
Method getOwner()Ljava/lang/String;
Method getName()Ljava/lang/String;
Method getDesc()Ljava/lang/String;
Method isInterface()Z
Method equals(Ljava/lang/Object;)Z
Method hashCode()I
Method toString()Ljava/lang/String;
File org/objectweb/asm/Handler.class
Class org/objectweb/asm/Handler
Method <init>(Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;ILjava/lang/String;)V
Method <init>(Lorg/objectweb/asm/Handler;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;)V
Method removeRange(Lorg/objectweb/asm/Handler;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Handler;
Method getExceptionTableLength(Lorg/objectweb/asm/Handler;)I
Method getExceptionTableSize(Lorg/objectweb/asm/Handler;)I
Method putExceptionTable(Lorg/objectweb/asm/Handler;Lorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/Label.class
Class org/objectweb/asm/Label
Method <init>()V
Method getOffset()I
Method getCanonicalInstance()Lorg/objectweb/asm/Label;
Method addLineNumber(I)V
Method accept(Lorg/objectweb/asm/MethodVisitor;Z)V
Method put(Lorg/objectweb/asm/ByteVector;IZ)V
Method addForwardReference(III)V
Method resolve([BI)Z
Method markSubroutine(S)V
Method addSubroutineRetSuccessors(Lorg/objectweb/asm/Label;)V
Method pushSuccessors(Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Label;
Method toString()Ljava/lang/String;
Method <clinit>()V
File org/objectweb/asm/MethodTooLargeException.class
Class org/objectweb/asm/MethodTooLargeException
Method <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
Method getClassName()Ljava/lang/String;
Method getMethodName()Ljava/lang/String;
Method getDescriptor()Ljava/lang/String;
Method getCodeSize()I
File org/objectweb/asm/MethodVisitor.class
Class org/objectweb/asm/MethodVisitor
Method <init>(I)V
Method <init>(ILorg/objectweb/asm/MethodVisitor;)V
Method visitParameter(Ljava/lang/String;I)V
Method visitAnnotationDefault()Lorg/objectweb/asm/AnnotationVisitor;
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAnnotableParameterCount(IZ)V
Method visitParameterAnnotation(ILjava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitCode()V
Method visitFrame(II[Ljava/lang/Object;I[Ljava/lang/Object;)V
Method visitInsn(I)V
Method visitIntInsn(II)V
Method visitVarInsn(II)V
Method visitTypeInsn(ILjava/lang/String;)V
Method visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
Method visitInvokeDynamicInsn(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)V
Method visitJumpInsn(ILorg/objectweb/asm/Label;)V
Method visitLabel(Lorg/objectweb/asm/Label;)V
Method visitLdcInsn(Ljava/lang/Object;)V
Method visitIincInsn(II)V
Method visitTableSwitchInsn(IILorg/objectweb/asm/Label;[Lorg/objectweb/asm/Label;)V
Method visitLookupSwitchInsn(Lorg/objectweb/asm/Label;[I[Lorg/objectweb/asm/Label;)V
Method visitMultiANewArrayInsn(Ljava/lang/String;I)V
Method visitInsnAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTryCatchBlock(Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;Ljava/lang/String;)V
Method visitTryCatchAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitLocalVariable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;I)V
Method visitLocalVariableAnnotation(ILorg/objectweb/asm/TypePath;[Lorg/objectweb/asm/Label;[Lorg/objectweb/asm/Label;[ILjava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitLineNumber(ILorg/objectweb/asm/Label;)V
Method visitMaxs(II)V
Method visitEnd()V
File org/objectweb/asm/MethodWriter.class
Class org/objectweb/asm/MethodWriter
Method <init>(Lorg/objectweb/asm/SymbolTable;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;I)V
Method hasFrames()Z
Method hasAsmInstructions()Z
Method visitParameter(Ljava/lang/String;I)V
Method visitAnnotationDefault()Lorg/objectweb/asm/AnnotationVisitor;
Method visitAnnotation(Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTypeAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAnnotableParameterCount(IZ)V
Method visitParameterAnnotation(ILjava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitAttribute(Lorg/objectweb/asm/Attribute;)V
Method visitCode()V
Method visitFrame(II[Ljava/lang/Object;I[Ljava/lang/Object;)V
Method visitInsn(I)V
Method visitIntInsn(II)V
Method visitVarInsn(II)V
Method visitTypeInsn(ILjava/lang/String;)V
Method visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
Method visitInvokeDynamicInsn(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)V
Method visitJumpInsn(ILorg/objectweb/asm/Label;)V
Method visitLabel(Lorg/objectweb/asm/Label;)V
Method visitLdcInsn(Ljava/lang/Object;)V
Method visitIincInsn(II)V
Method visitTableSwitchInsn(IILorg/objectweb/asm/Label;[Lorg/objectweb/asm/Label;)V
Method visitLookupSwitchInsn(Lorg/objectweb/asm/Label;[I[Lorg/objectweb/asm/Label;)V
Method visitSwitchInsn(Lorg/objectweb/asm/Label;[Lorg/objectweb/asm/Label;)V
Method visitMultiANewArrayInsn(Ljava/lang/String;I)V
Method visitInsnAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitTryCatchBlock(Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;Ljava/lang/String;)V
Method visitTryCatchAnnotation(ILorg/objectweb/asm/TypePath;Ljava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitLocalVariable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Label;Lorg/objectweb/asm/Label;I)V
Method visitLocalVariableAnnotation(ILorg/objectweb/asm/TypePath;[Lorg/objectweb/asm/Label;[Lorg/objectweb/asm/Label;[ILjava/lang/String;Z)Lorg/objectweb/asm/AnnotationVisitor;
Method visitLineNumber(ILorg/objectweb/asm/Label;)V
Method visitMaxs(II)V
Method computeAllFrames()V
Method computeMaxStackAndLocal()V
Method visitEnd()V
Method addSuccessorToCurrentBasicBlock(ILorg/objectweb/asm/Label;)V
Method endCurrentBasicBlockWithNoSuccessor()V
Method visitFrameStart(III)I
Method visitAbstractType(II)V
Method visitFrameEnd()V
Method putFrame()V
Method putAbstractTypes(II)V
Method putFrameType(Ljava/lang/Object;)V
Method canCopyMethodAttributes(Lorg/objectweb/asm/ClassReader;IIZZIII)Z
Method computeMethodInfoSize()I
Method putMethodInfo(Lorg/objectweb/asm/ByteVector;)V
Method collectAttributePrototypes(Lorg/objectweb/asm/Attribute$Set;)V
Method <clinit>()V
File org/objectweb/asm/ModuleVisitor.class
Class org/objectweb/asm/ModuleVisitor
Method <init>(I)V
Method <init>(ILorg/objectweb/asm/ModuleVisitor;)V
Method visitMainClass(Ljava/lang/String;)V
Method visitPackage(Ljava/lang/String;)V
Method visitRequire(Ljava/lang/String;ILjava/lang/String;)V
Method visitExport(Ljava/lang/String;I[Ljava/lang/String;)V
Method visitOpen(Ljava/lang/String;I[Ljava/lang/String;)V
Method visitUse(Ljava/lang/String;)V
Method visitProvide(Ljava/lang/String;[Ljava/lang/String;)V
Method visitEnd()V
File org/objectweb/asm/ModuleWriter.class
Class org/objectweb/asm/ModuleWriter
Method <init>(Lorg/objectweb/asm/SymbolTable;III)V
Method visitMainClass(Ljava/lang/String;)V
Method visitPackage(Ljava/lang/String;)V
Method visitRequire(Ljava/lang/String;ILjava/lang/String;)V
Method visitExport(Ljava/lang/String;I[Ljava/lang/String;)V
Method visitOpen(Ljava/lang/String;I[Ljava/lang/String;)V
Method visitUse(Ljava/lang/String;)V
Method visitProvide(Ljava/lang/String;[Ljava/lang/String;)V
Method visitEnd()V
Method getAttributeCount()I
Method computeAttributesSize()I
Method putAttributes(Lorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/Opcodes.class
Class org/objectweb/asm/Opcodes
Method <clinit>()V
File org/objectweb/asm/Symbol.class
Class org/objectweb/asm/Symbol
Method <init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V
Method getArgumentsAndReturnSizes()I
File org/objectweb/asm/SymbolTable$Entry.class
Class org/objectweb/asm/SymbolTable$Entry
Method <init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;JI)V
Method <init>(IILjava/lang/String;I)V
Method <init>(IILjava/lang/String;JI)V
Method <init>(IILjava/lang/String;Ljava/lang/String;I)V
Method <init>(IIJI)V
File org/objectweb/asm/SymbolTable.class
Class org/objectweb/asm/SymbolTable
Method <init>(Lorg/objectweb/asm/ClassWriter;)V
Method <init>(Lorg/objectweb/asm/ClassWriter;Lorg/objectweb/asm/ClassReader;)V
Method getSource()Lorg/objectweb/asm/ClassReader;
Method getMajorVersion()I
Method getClassName()Ljava/lang/String;
Method setMajorVersionAndClassName(ILjava/lang/String;)I
Method getConstantPoolCount()I
Method getConstantPoolLength()I
Method putConstantPool(Lorg/objectweb/asm/ByteVector;)V
Method computeBootstrapMethodsSize()I
Method putBootstrapMethods(Lorg/objectweb/asm/ByteVector;)V
Method get(I)Lorg/objectweb/asm/SymbolTable$Entry;
Method put(Lorg/objectweb/asm/SymbolTable$Entry;)Lorg/objectweb/asm/SymbolTable$Entry;
Method add(Lorg/objectweb/asm/SymbolTable$Entry;)V
Method addConstant(Ljava/lang/Object;)Lorg/objectweb/asm/Symbol;
Method addConstantClass(Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantFieldref(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantMethodref(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/objectweb/asm/Symbol;
Method addConstantMemberReference(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/objectweb/asm/SymbolTable$Entry;
Method addConstantMemberReference(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method addConstantString(Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantInteger(I)Lorg/objectweb/asm/Symbol;
Method addConstantFloat(F)Lorg/objectweb/asm/Symbol;
Method addConstantInteger(II)Lorg/objectweb/asm/Symbol;
Method addConstantInteger(III)V
Method addConstantLong(J)Lorg/objectweb/asm/Symbol;
Method addConstantDouble(D)Lorg/objectweb/asm/Symbol;
Method addConstantLong(IJ)Lorg/objectweb/asm/Symbol;
Method addConstantLong(IIJ)V
Method addConstantNameAndType(Ljava/lang/String;Ljava/lang/String;)I
Method addConstantNameAndType(ILjava/lang/String;Ljava/lang/String;)V
Method addConstantUtf8(Ljava/lang/String;)I
Method addConstantUtf8(ILjava/lang/String;)V
Method addConstantMethodHandle(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/objectweb/asm/Symbol;
Method addConstantMethodHandle(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
Method addConstantMethodType(Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantDynamic(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)Lorg/objectweb/asm/Symbol;
Method addConstantInvokeDynamic(Ljava/lang/String;Ljava/lang/String;Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)Lorg/objectweb/asm/Symbol;
Method addConstantDynamicOrInvokeDynamicReference(ILjava/lang/String;Ljava/lang/String;I)Lorg/objectweb/asm/Symbol;
Method addConstantDynamicOrInvokeDynamicReference(IILjava/lang/String;Ljava/lang/String;I)V
Method addConstantModule(Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantPackage(Ljava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantUtf8Reference(ILjava/lang/String;)Lorg/objectweb/asm/Symbol;
Method addConstantUtf8Reference(IILjava/lang/String;)V
Method addBootstrapMethod(Lorg/objectweb/asm/Handle;[Ljava/lang/Object;)Lorg/objectweb/asm/Symbol;
Method addBootstrapMethod(III)Lorg/objectweb/asm/Symbol;
Method getType(I)Lorg/objectweb/asm/Symbol;
Method addType(Ljava/lang/String;)I
Method addUninitializedType(Ljava/lang/String;I)I
Method addMergedType(II)I
Method addType(Lorg/objectweb/asm/SymbolTable$Entry;)I
Method hash(II)I
Method hash(IJ)I
Method hash(ILjava/lang/String;)I
Method hash(ILjava/lang/String;I)I
Method hash(ILjava/lang/String;Ljava/lang/String;)I
Method hash(ILjava/lang/String;Ljava/lang/String;I)I
Method hash(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
Method hash(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
File org/objectweb/asm/Type.class
Class org/objectweb/asm/Type
Method <init>(ILjava/lang/String;II)V
Method getType(Ljava/lang/String;)Lorg/objectweb/asm/Type;
Method getObjectType(Ljava/lang/String;)Lorg/objectweb/asm/Type;
Method getMethodType(Ljava/lang/String;)Lorg/objectweb/asm/Type;
Method getMethodType(Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)Lorg/objectweb/asm/Type;
Method getType(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
Method getType(Ljava/lang/reflect/Constructor;)Lorg/objectweb/asm/Type;
Method getType(Ljava/lang/reflect/Method;)Lorg/objectweb/asm/Type;
Method getArgumentTypes(Ljava/lang/String;)[Lorg/objectweb/asm/Type;
Method getArgumentTypes(Ljava/lang/reflect/Method;)[Lorg/objectweb/asm/Type;
Method getReturnType(Ljava/lang/String;)Lorg/objectweb/asm/Type;
Method getReturnType(Ljava/lang/reflect/Method;)Lorg/objectweb/asm/Type;
Method getArgumentsAndReturnSizes(Ljava/lang/String;)I
Method getType(Ljava/lang/String;II)Lorg/objectweb/asm/Type;
Method getSort()I
Method getDimensions()I
Method getElementType()Lorg/objectweb/asm/Type;
Method getClassName()Ljava/lang/String;
Method getInternalName()Ljava/lang/String;
Method getArgumentTypes()[Lorg/objectweb/asm/Type;
Method getReturnType()Lorg/objectweb/asm/Type;
Method getArgumentsAndReturnSizes()I
Method getDescriptor()Ljava/lang/String;
Method getMethodDescriptor(Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)Ljava/lang/String;
Method appendDescriptor(Ljava/lang/StringBuilder;)V
Method getInternalName(Ljava/lang/Class;)Ljava/lang/String;
Method getDescriptor(Ljava/lang/Class;)Ljava/lang/String;
Method getConstructorDescriptor(Ljava/lang/reflect/Constructor;)Ljava/lang/String;
Method getMethodDescriptor(Ljava/lang/reflect/Method;)Ljava/lang/String;
Method appendDescriptor(Ljava/lang/StringBuilder;Ljava/lang/Class;)V
Method getSize()I
Method getOpcode(I)I
Method equals(Ljava/lang/Object;)Z
Method hashCode()I
Method toString()Ljava/lang/String;
Method <clinit>()V
File org/objectweb/asm/TypePath.class
Class org/objectweb/asm/TypePath
Method <init>([BI)V
Method getLength()I
Method getStep(I)I
Method getStepArgument(I)I
Method fromString(Ljava/lang/String;)Lorg/objectweb/asm/TypePath;
Method toString()Ljava/lang/String;
Method put(Lorg/objectweb/asm/TypePath;Lorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/TypeReference.class
Class org/objectweb/asm/TypeReference
Method <init>(I)V
Method newTypeReference(I)Lorg/objectweb/asm/TypeReference;
Method newTypeParameterReference(II)Lorg/objectweb/asm/TypeReference;
Method newTypeParameterBoundReference(III)Lorg/objectweb/asm/TypeReference;
Method newSuperTypeReference(I)Lorg/objectweb/asm/TypeReference;
Method newFormalParameterReference(I)Lorg/objectweb/asm/TypeReference;
Method newExceptionReference(I)Lorg/objectweb/asm/TypeReference;
Method newTryCatchReference(I)Lorg/objectweb/asm/TypeReference;
Method newTypeArgumentReference(II)Lorg/objectweb/asm/TypeReference;
Method getSort()I
Method getTypeParameterIndex()I
Method getTypeParameterBoundIndex()I
Method getSuperTypeIndex()I
Method getFormalParameterIndex()I
Method getExceptionIndex()I
Method getTryCatchBlockIndex()I
Method getTypeArgumentIndex()I
Method getValue()I
Method putTarget(ILorg/objectweb/asm/ByteVector;)V
File org/objectweb/asm/signature/SignatureReader.class
Class org/objectweb/asm/signature/SignatureReader
Method <init>(Ljava/lang/String;)V
Method accept(Lorg/objectweb/asm/signature/SignatureVisitor;)V
Method acceptType(Lorg/objectweb/asm/signature/SignatureVisitor;)V
Method parseType(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
File org/objectweb/asm/signature/SignatureVisitor.class
Class org/objectweb/asm/signature/SignatureVisitor
Method <init>(I)V
Method visitFormalTypeParameter(Ljava/lang/String;)V
Method visitClassBound()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitInterfaceBound()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitSuperclass()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitInterface()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitParameterType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitReturnType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitExceptionType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitBaseType(C)V
Method visitTypeVariable(Ljava/lang/String;)V
Method visitArrayType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitClassType(Ljava/lang/String;)V
Method visitInnerClassType(Ljava/lang/String;)V
Method visitTypeArgument()V
Method visitTypeArgument(C)Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitEnd()V
File org/objectweb/asm/signature/SignatureWriter.class
Class org/objectweb/asm/signature/SignatureWriter
Method <init>()V
Method visitFormalTypeParameter(Ljava/lang/String;)V
Method visitClassBound()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitInterfaceBound()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitSuperclass()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitInterface()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitParameterType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitReturnType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitExceptionType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitBaseType(C)V
Method visitTypeVariable(Ljava/lang/String;)V
Method visitArrayType()Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitClassType(Ljava/lang/String;)V
Method visitInnerClassType(Ljava/lang/String;)V
Method visitTypeArgument()V
Method visitTypeArgument(C)Lorg/objectweb/asm/signature/SignatureVisitor;
Method visitEnd()V
Method toString()Ljava/lang/String;
Method endFormals()V
Method endArguments()V
=== STATISTICS ===
classes: 36
methods: 506
instructions: 23388
invoke instructions: 2388
branch instructions: 1313
OPCODE MNEMONIC COUNT
0 NOP 0
1 ACONST_NULL 123
2 ICONST_M1 80
3 ICONST_0 483
4 ICONST_1 356
5 ICONST_2 213
6 ICONST_3 63
7 ICONST_4 84
8 ICONST_5 13
9 LCONST_0 4
10 LCONST_1 0
11 FCONST_0 0
12 FCONST_1 0
13 FCONST_2 0
14 DCONST_0 0
15 DCONST_1 0
16 BIPUSH 646
17 SIPUSH 227
18 LDC 499
19 LDC_W 0
20 LDC2_W 0
21 ILOAD 2516
22 LLOAD 20
23 FLOAD 2
24 DLOAD 2
25 ALOAD 5255
26 ILOAD_0 0
27 ILOAD_1 0
28 ILOAD_2 0
29 ILOAD_3 0
30 LLOAD_0 0
31 LLOAD_1 0
32 LLOAD_2 0
33 LLOAD_3 0
34 FLOAD_0 0
35 FLOAD_1 0
36 FLOAD_2 0
37 FLOAD_3 0
38 DLOAD_0 0
39 DLOAD_1 0
40 DLOAD_2 0
41 DLOAD_3 0
42 ALOAD_0 0
43 ALOAD_1 0
44 ALOAD_2 0
45 ALOAD_3 0
46 IALOAD 88
47 LALOAD 1
48 FALOAD 1
49 DALOAD 1
50 AALOAD 71
51 BALOAD 45
52 CALOAD 1
53 SALOAD 1
54 ISTORE 879
55 LSTORE 4
56 FSTORE 1
57 DSTORE 1
58 ASTORE 424
59 ISTORE_0 0
60 ISTORE_1 0
61 ISTORE_2 0
62 ISTORE_3 0
63 LSTORE_0 0
64 LSTORE_1 0
65 LSTORE_2 0
66 LSTORE_3 0
67 FSTORE_0 0
68 FSTORE_1 0
69 FSTORE_2 0
70 FSTORE_3 0
71 DSTORE_0 0
72 DSTORE_1 0
73 DSTORE_2 0
74 DSTORE_3 0
75 ASTORE_0 0
76 ASTORE_1 0
77 ASTORE_2 0
78 ASTORE_3 0
79 IASTORE 241
80 LASTORE 1
81 FASTORE 1
82 DASTORE 1
83 AASTORE 41
84 BASTORE 55
85 CASTORE 4
86 SASTORE 1
87 POP 317
88 POP2 0
89 DUP 500
90 DUP_X1 37
91 DUP_X2 5
92 DUP2 1
93 DUP2_X1 0
94 DUP2_X2 0
95 SWAP 0
96 IADD 525
97 LADD 0
98 FADD 0
99 DADD 0
100 ISUB 101
101 LSUB 0
102 FSUB 0
103 DSUB 0
104 IMUL 39
105 LMUL 0
106 FMUL 0
107 DMUL 0
108 IDIV 3
109 LDIV 0
110 FDIV 0
111 DDIV 0
112 IREM 11
113 LREM 0
114 FREM 0
115 DREM 0
116 INEG 1
117 LNEG 0
118 FNEG 0
119 DNEG 0
120 ISHL 25
121 LSHL 2
122 ISHR 19
123 LSHR 0
124 IUSHR 30
125 LUSHR 2
126 IAND 182
127 LAND 1
128 IOR 79
129 LOR 2
130 IXOR 12
131 LXOR 0
132 IINC 477
133 I2L 17
134 I2F 0
135 I2D 0
136 L2I 6
137 L2F 0
138 L2D 0
139 F2I 0
140 F2L 0
141 F2D 0
142 D2I 0
143 D2L 0
144 D2F 0
145 I2B 53
146 I2C 5
147 I2S 31
148 LCMP 6
149 FCMPL 0
150 FCMPG 0
151 DCMPL 0
152 DCMPG 0
153 IFEQ 264
154 IFNE 68
155 IFLT 4
156 IFGE 1
157 IFGT 0
158 IFLE 73
159 IF_ICMPEQ 108
160 IF_ICMPNE 194
161 IF_ICMPLT 30
162 IF_ICMPGE 148
163 IF_ICMPGT 16
164 IF_ICMPLE 36
165 IF_ACMPEQ 11
166 IF_ACMPNE 27
167 GOTO 718
168 JSR 0
169 RET 0
170 TABLESWITCH 28
171 LOOKUPSWITCH 5
172 IRETURN 176
173 LRETURN 1
174 FRETURN 0
175 DRETURN 0
176 ARETURN 267
177 RETURN 241
178 GETSTATIC 72
179 PUTSTATIC 18
180 GETFIELD 2211
181 PUTFIELD 473
182 INVOKEVIRTUAL 1609
183 INVOKESPECIAL 630
184 INVOKESTATIC 149
185 INVOKEINTERFACE 0
186 INVOKEDYNAMIC 0
187 NEW 225
188 NEWARRAY 46
189 ANEWARRAY 30
190 ARRAYLENGTH 111
191 ATHROW 68
192 CHECKCAST 55
193 INSTANCEOF 37
194 MONITORENTER 0
195 MONITOREXIT 0
196 WIDE 0
197 MULTIANEWARRAY 0
198 IFNULL 243
199 IFNONNULL 57
200 0
201 0
202 0
203 0
204 0
205 0
206 0
207 0
208 0
209 0
210 0
211 0
212 0
213 0
214 0
215 0
216 0
217 0
218 0
219 0
220 0
221 0
222 0
223 0
224 0
225 0
226 0
227 0
228 0
229 0
230 0
231 0
232 0
233 0
234 0
235 0
236 0
237 0
238 0
239 0
240 0
241 0
242 0
243 0
244 0
245 0
246 0
247 0
248 0
249 0
250 0
251 0
252 0
253 0
254 0
255 0

19
test/test.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/sh
echo Testing...
# Remove actual output from prior run (if any)
rm -f asm-6.2.1.jar-actual.output.txt
# There should be only one build folder, with the name of this IntelliJ project. Get that name.
OUT=`ls ../out/production`
# Run the program, storing stdout in a file
java -cp ../out/production/${OUT}:../lib/asm-7.1.jar:../lib/asm-tree-7.1.jar:../lib/asm-util-7.1.jar Analyzer asm-6.2.1.jar > asm-6.2.1.jar-actual.output.txt
# Compare actual to expected output
diff asm-6.2.1.jar-actual.output.txt asm-6.2.1.jar-expected.output.txt
RESULT=$?
# If actual output differs from expected output, print "failed"
if [ ${RESULT} -eq 0 ]; then
echo passed
else
echo failed
fi