public final class org.aspectj.apache.bcel.classfile.ClassParser
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.aspectj.apache.bcel.classfile.ClassParser
super_class: java.lang.Object
{
private java.io.DataInputStream file;
descriptor: Ljava/io/DataInputStream;
flags: (0x0002) ACC_PRIVATE
private java.lang.String filename;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int classnameIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int superclassnameIndex;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int major;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int minor;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int accessflags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int[] interfaceIndices;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private org.aspectj.apache.bcel.classfile.ConstantPool cpool;
descriptor: Lorg/aspectj/apache/bcel/classfile/ConstantPool;
flags: (0x0002) ACC_PRIVATE
private org.aspectj.apache.bcel.classfile.Field[] fields;
descriptor: [Lorg/aspectj/apache/bcel/classfile/Field;
flags: (0x0002) ACC_PRIVATE
private org.aspectj.apache.bcel.classfile.Method[] methods;
descriptor: [Lorg/aspectj/apache/bcel/classfile/Method;
flags: (0x0002) ACC_PRIVATE
private org.aspectj.apache.bcel.classfile.Attribute[] attributes;
descriptor: [Lorg/aspectj/apache/bcel/classfile/Attribute;
flags: (0x0002) ACC_PRIVATE
private static final int BUFSIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private static final int[] NO_INTERFACES;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
newarray 10
putstatic org.aspectj.apache.bcel.classfile.ClassParser.NO_INTERFACES:[I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.io.InputStream, java.lang.String);
descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
2: aload 1
instanceof java.io.DataInputStream
ifeq 3
aload 0
aload 1
checkcast java.io.DataInputStream
putfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
goto 4
3: StackMap locals: org.aspectj.apache.bcel.classfile.ClassParser java.io.InputStream java.lang.String
StackMap stack:
aload 0
new java.io.DataInputStream
dup
new java.io.BufferedInputStream
dup
aload 1
sipush 8192
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;I)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
putfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
0 5 1 file Ljava/io/InputStream;
0 5 2 filename Ljava/lang/String;
MethodParameters:
Name Flags
file
filename
public void <init>(java.io.ByteArrayInputStream, java.lang.String);
descriptor: (Ljava/io/ByteArrayInputStream;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
2: aload 0
new java.io.DataInputStream
dup
aload 1
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
putfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
0 4 1 baos Ljava/io/ByteArrayInputStream;
0 4 2 filename Ljava/lang/String;
MethodParameters:
Name Flags
baos
filename
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
2: aload 0
new java.io.DataInputStream
dup
new java.io.BufferedInputStream
dup
new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
sipush 8192
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;I)V
invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
putfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
0 4 1 file_name Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file_name
public org.aspectj.apache.bcel.classfile.JavaClass parse();
descriptor: ()Lorg/aspectj/apache/bcel/classfile/JavaClass;
flags: (0x0001) ACC_PUBLIC
Code:
stack=13, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readID:()V
1: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readVersion:()V
2: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool:()V
3: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readClassInfo:()V
4: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readInterfaces:()V
5: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readFields:()V
6: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readMethods:()V
7: aload 0
invokevirtual org.aspectj.apache.bcel.classfile.ClassParser.readAttributes:()V
8: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.close:()V
9: new org.aspectj.apache.bcel.classfile.JavaClass
dup
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.classnameIndex:I
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.superclassnameIndex:I
10: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.major:I
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.minor:I
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.accessflags:I
11: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.cpool:Lorg/aspectj/apache/bcel/classfile/ConstantPool;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.interfaceIndices:[I
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.fields:[Lorg/aspectj/apache/bcel/classfile/Field;
12: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.methods:[Lorg/aspectj/apache/bcel/classfile/Method;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.attributes:[Lorg/aspectj/apache/bcel/classfile/Attribute;
13: invokespecial org.aspectj.apache.bcel.classfile.JavaClass.<init>:(IILjava/lang/String;IIILorg/aspectj/apache/bcel/classfile/ConstantPool;[I[Lorg/aspectj/apache/bcel/classfile/Field;[Lorg/aspectj/apache/bcel/classfile/Method;[Lorg/aspectj/apache/bcel/classfile/Attribute;)V
astore 1
start local 1 14: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
14 15 1 jc Lorg/aspectj/apache/bcel/classfile/JavaClass;
Exceptions:
throws java.io.IOException, org.aspectj.apache.bcel.classfile.ClassFormatException
private final void readAttributes();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.cpool:Lorg/aspectj/apache/bcel/classfile/ConstantPool;
invokestatic org.aspectj.apache.bcel.classfile.AttributeUtils.readAttributes:(Ljava/io/DataInputStream;Lorg/aspectj/apache/bcel/classfile/ConstantPool;)[Lorg/aspectj/apache/bcel/classfile/Attribute;
putfield org.aspectj.apache.bcel.classfile.ClassParser.attributes:[Lorg/aspectj/apache/bcel/classfile/Attribute;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
private final void readClassInfo();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield org.aspectj.apache.bcel.classfile.ClassParser.accessflags:I
1: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.accessflags:I
sipush 512
iand
ifeq 3
2: aload 0
dup
getfield org.aspectj.apache.bcel.classfile.ClassParser.accessflags:I
sipush 1024
ior
putfield org.aspectj.apache.bcel.classfile.ClassParser.accessflags:I
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield org.aspectj.apache.bcel.classfile.ClassParser.classnameIndex:I
4: aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield org.aspectj.apache.bcel.classfile.ClassParser.superclassnameIndex:I
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
Exceptions:
throws java.io.IOException
private final void readConstantPool();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
new org.aspectj.apache.bcel.classfile.ConstantPool
dup
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokespecial org.aspectj.apache.bcel.classfile.ConstantPool.<init>:(Ljava/io/DataInputStream;)V
putfield org.aspectj.apache.bcel.classfile.ClassParser.cpool:Lorg/aspectj/apache/bcel/classfile/ConstantPool;
1: goto 8
StackMap locals:
StackMap stack: org.aspectj.apache.bcel.classfile.ClassFormatException
2: astore 1
start local 1 3: aload 1
invokevirtual org.aspectj.apache.bcel.classfile.ClassFormatException.printStackTrace:()V
4: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
ifnull 7
5: new java.lang.StringBuilder
dup
ldc "File: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "': "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual org.aspectj.apache.bcel.classfile.ClassFormatException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 2
start local 2 6: new org.aspectj.apache.bcel.classfile.ClassFormatException
dup
aload 2
invokespecial org.aspectj.apache.bcel.classfile.ClassFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 2 7: StackMap locals: org.aspectj.apache.bcel.classfile.ClassFormatException
StackMap stack:
aload 1
athrow
end local 1 8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
3 8 1 cfe Lorg/aspectj/apache/bcel/classfile/ClassFormatException;
6 7 2 newmessage Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class org.aspectj.apache.bcel.classfile.ClassFormatException
Exceptions:
throws java.io.IOException
private final void readFields();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 1
start local 1 1: iload 1
ifne 4
2: aload 0
getstatic org.aspectj.apache.bcel.classfile.Field.NoFields:[Lorg/aspectj/apache/bcel/classfile/Field;
putfield org.aspectj.apache.bcel.classfile.ClassParser.fields:[Lorg/aspectj/apache/bcel/classfile/Field;
3: goto 10
4: StackMap locals: int
StackMap stack:
aload 0
iload 1
anewarray org.aspectj.apache.bcel.classfile.Field
putfield org.aspectj.apache.bcel.classfile.ClassParser.fields:[Lorg/aspectj/apache/bcel/classfile/Field;
5: iconst_0
istore 2
start local 2 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.fields:[Lorg/aspectj/apache/bcel/classfile/Field;
iload 2
new org.aspectj.apache.bcel.classfile.Field
dup
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.cpool:Lorg/aspectj/apache/bcel/classfile/ConstantPool;
invokespecial org.aspectj.apache.bcel.classfile.Field.<init>:(Ljava/io/DataInputStream;Lorg/aspectj/apache/bcel/classfile/ConstantPool;)V
aastore
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iload 1
if_icmplt 7
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
1 11 1 fieldCount I
6 10 2 i I
Exceptions:
throws java.io.IOException, org.aspectj.apache.bcel.classfile.ClassFormatException
private final void readID();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=5, locals=2, args_size=1
start local 0 0: ldc -889275714
istore 1
start local 1 1: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readInt:()I
iload 1
if_icmpeq 3
2: new org.aspectj.apache.bcel.classfile.ClassFormatException
dup
new java.lang.StringBuilder
dup
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.filename:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not a Java .class file"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.aspectj.apache.bcel.classfile.ClassFormatException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
1 4 1 magic I
Exceptions:
throws java.io.IOException
private final void readInterfaces();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 1
start local 1 1: iload 1
ifne 4
2: aload 0
getstatic org.aspectj.apache.bcel.classfile.ClassParser.NO_INTERFACES:[I
putfield org.aspectj.apache.bcel.classfile.ClassParser.interfaceIndices:[I
3: goto 10
4: StackMap locals: int
StackMap stack:
aload 0
iload 1
newarray 10
putfield org.aspectj.apache.bcel.classfile.ClassParser.interfaceIndices:[I
5: iconst_0
istore 2
start local 2 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.interfaceIndices:[I
iload 2
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
iastore
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iload 1
if_icmplt 7
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
1 11 1 interfacesCount I
6 10 2 i I
Exceptions:
throws java.io.IOException
private final void readMethods();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
istore 1
start local 1 1: iload 1
ifne 4
2: aload 0
getstatic org.aspectj.apache.bcel.classfile.Method.NoMethods:[Lorg/aspectj/apache/bcel/classfile/Method;
putfield org.aspectj.apache.bcel.classfile.ClassParser.methods:[Lorg/aspectj/apache/bcel/classfile/Method;
3: goto 10
4: StackMap locals: int
StackMap stack:
aload 0
iload 1
anewarray org.aspectj.apache.bcel.classfile.Method
putfield org.aspectj.apache.bcel.classfile.ClassParser.methods:[Lorg/aspectj/apache/bcel/classfile/Method;
5: iconst_0
istore 2
start local 2 6: goto 9
7: StackMap locals: int
StackMap stack:
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.methods:[Lorg/aspectj/apache/bcel/classfile/Method;
iload 2
new org.aspectj.apache.bcel.classfile.Method
dup
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.cpool:Lorg/aspectj/apache/bcel/classfile/ConstantPool;
invokespecial org.aspectj.apache.bcel.classfile.Method.<init>:(Ljava/io/DataInputStream;Lorg/aspectj/apache/bcel/classfile/ConstantPool;)V
aastore
8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
iload 1
if_icmplt 7
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
1 11 1 methodsCount I
6 10 2 i I
Exceptions:
throws java.io.IOException
private final void readVersion();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield org.aspectj.apache.bcel.classfile.ClassParser.minor:I
1: aload 0
aload 0
getfield org.aspectj.apache.bcel.classfile.ClassParser.file:Ljava/io/DataInputStream;
invokevirtual java.io.DataInputStream.readUnsignedShort:()I
putfield org.aspectj.apache.bcel.classfile.ClassParser.major:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/aspectj/apache/bcel/classfile/ClassParser;
Exceptions:
throws java.io.IOException
}
SourceFile: "ClassParser.java"