public class javassist.expr.FieldAccess extends javassist.expr.Expr
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: javassist.expr.FieldAccess
super_class: javassist.expr.Expr
{
int opcode;
descriptor: I
flags: (0x0000)
protected void <init>(int, javassist.bytecode.CodeIterator, javassist.CtClass, javassist.bytecode.MethodInfo, int);
descriptor: (ILjavassist/bytecode/CodeIterator;Ljavassist/CtClass;Ljavassist/bytecode/MethodInfo;I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 1
aload 2
aload 3
aload 4
invokespecial javassist.expr.Expr.<init>:(ILjavassist/bytecode/CodeIterator;Ljavassist/CtClass;Ljavassist/bytecode/MethodInfo;)V
1: aload 0
iload 5
putfield javassist.expr.FieldAccess.opcode:I
2: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljavassist/expr/FieldAccess;
0 3 1 pos I
0 3 2 i Ljavassist/bytecode/CodeIterator;
0 3 3 declaring Ljavassist/CtClass;
0 3 4 m Ljavassist/bytecode/MethodInfo;
0 3 5 op I
MethodParameters:
Name Flags
pos
i
declaring
m
op
public javassist.CtBehavior where();
descriptor: ()Ljavassist/CtBehavior;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javassist.expr.Expr.where:()Ljavassist/CtBehavior;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
public int getLineNumber();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javassist.expr.Expr.getLineNumber:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
public java.lang.String getFileName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javassist.expr.Expr.getFileName:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
public boolean isStatic();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.opcode:I
invokestatic javassist.expr.FieldAccess.isStatic:(I)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
static boolean isStatic(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
sipush 178
if_icmpeq 1
iload 0
sipush 179
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 c I
MethodParameters:
Name Flags
c
public boolean isReader();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.opcode:I
sipush 180
if_icmpeq 1
aload 0
getfield javassist.expr.FieldAccess.opcode:I
sipush 178
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavassist/expr/FieldAccess;
public boolean isWriter();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.opcode:I
sipush 181
if_icmpeq 1
aload 0
getfield javassist.expr.FieldAccess.opcode:I
sipush 179
if_icmpeq 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavassist/expr/FieldAccess;
private javassist.CtClass getCtClass();
descriptor: ()Ljavassist/CtClass;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.thisClass:Ljavassist/CtClass;
invokevirtual javassist.CtClass.getClassPool:()Ljavassist/ClassPool;
aload 0
invokevirtual javassist.expr.FieldAccess.getClassName:()Ljava/lang/String;
invokevirtual javassist.ClassPool.get:(Ljava/lang/String;)Ljavassist/CtClass;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
Exceptions:
throws javassist.NotFoundException
public java.lang.String getClassName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
aload 0
getfield javassist.expr.FieldAccess.currentPos:I
iconst_1
iadd
invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
istore 1
start local 1 1: aload 0
invokevirtual javassist.expr.FieldAccess.getConstPool:()Ljavassist/bytecode/ConstPool;
iload 1
invokevirtual javassist.bytecode.ConstPool.getFieldrefClassName:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavassist/expr/FieldAccess;
1 2 1 index I
public java.lang.String getFieldName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
aload 0
getfield javassist.expr.FieldAccess.currentPos:I
iconst_1
iadd
invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
istore 1
start local 1 1: aload 0
invokevirtual javassist.expr.FieldAccess.getConstPool:()Ljavassist/bytecode/ConstPool;
iload 1
invokevirtual javassist.bytecode.ConstPool.getFieldrefName:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavassist/expr/FieldAccess;
1 2 1 index I
public javassist.CtField getField();
descriptor: ()Ljavassist/CtField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual javassist.expr.FieldAccess.getCtClass:()Ljavassist/CtClass;
astore 1
start local 1 1: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
aload 0
getfield javassist.expr.FieldAccess.currentPos:I
iconst_1
iadd
invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
istore 2
start local 2 2: aload 0
invokevirtual javassist.expr.FieldAccess.getConstPool:()Ljavassist/bytecode/ConstPool;
astore 3
start local 3 3: aload 1
aload 3
iload 2
invokevirtual javassist.bytecode.ConstPool.getFieldrefName:(I)Ljava/lang/String;
aload 3
iload 2
invokevirtual javassist.bytecode.ConstPool.getFieldrefType:(I)Ljava/lang/String;
invokevirtual javassist.CtClass.getField:(Ljava/lang/String;Ljava/lang/String;)Ljavassist/CtField;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljavassist/expr/FieldAccess;
1 4 1 cc Ljavassist/CtClass;
2 4 2 index I
3 4 3 cp Ljavassist/bytecode/ConstPool;
Exceptions:
throws javassist.NotFoundException
public javassist.CtClass[] mayThrow();
descriptor: ()[Ljavassist/CtClass;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial javassist.expr.Expr.mayThrow:()[Ljavassist/CtClass;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/expr/FieldAccess;
public java.lang.String getSignature();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
aload 0
getfield javassist.expr.FieldAccess.currentPos:I
iconst_1
iadd
invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
istore 1
start local 1 1: aload 0
invokevirtual javassist.expr.FieldAccess.getConstPool:()Ljavassist/bytecode/ConstPool;
iload 1
invokevirtual javassist.bytecode.ConstPool.getFieldrefType:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljavassist/expr/FieldAccess;
1 2 1 index I
public void replace(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=15, args_size=2
start local 0 start local 1 0: aload 0
getfield javassist.expr.FieldAccess.thisClass:Ljavassist/CtClass;
invokevirtual javassist.CtClass.getClassFile:()Ljavassist/bytecode/ClassFile;
pop
1: aload 0
invokevirtual javassist.expr.FieldAccess.getConstPool:()Ljavassist/bytecode/ConstPool;
astore 2
start local 2 2: aload 0
getfield javassist.expr.FieldAccess.currentPos:I
istore 3
start local 3 3: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
iload 3
iconst_1
iadd
invokevirtual javassist.bytecode.CodeIterator.u16bitAt:(I)I
istore 4
start local 4 4: new javassist.compiler.Javac
dup
aload 0
getfield javassist.expr.FieldAccess.thisClass:Ljavassist/CtClass;
invokespecial javassist.compiler.Javac.<init>:(Ljavassist/CtClass;)V
astore 5
start local 5 5: aload 0
getfield javassist.expr.FieldAccess.iterator:Ljavassist/bytecode/CodeIterator;
invokevirtual javassist.bytecode.CodeIterator.get:()Ljavassist/bytecode/CodeAttribute;
astore 6
start local 6 6: aload 2
iload 4
invokevirtual javassist.bytecode.ConstPool.getFieldrefType:(I)Ljava/lang/String;
7: aload 0
getfield javassist.expr.FieldAccess.thisClass:Ljavassist/CtClass;
invokevirtual javassist.CtClass.getClassPool:()Ljavassist/ClassPool;
8: invokestatic javassist.bytecode.Descriptor.toCtClass:(Ljava/lang/String;Ljavassist/ClassPool;)Ljavassist/CtClass;
9: astore 9
start local 9 10: aload 0
invokevirtual javassist.expr.FieldAccess.isReader:()Z
istore 10
start local 10 11: iload 10
ifeq 15
12: iconst_0
anewarray javassist.CtClass
astore 7
start local 7 13: aload 9
astore 8
start local 8 14: goto 18
end local 8 end local 7 15: StackMap locals: javassist.expr.FieldAccess java.lang.String javassist.bytecode.ConstPool int int javassist.compiler.Javac javassist.bytecode.CodeAttribute top top javassist.CtClass int
StackMap stack:
iconst_1
anewarray javassist.CtClass
astore 7
start local 7 16: aload 7
iconst_0
aload 9
aastore
17: getstatic javassist.CtClass.voidType:Ljavassist/CtClass;
astore 8
start local 8 18: StackMap locals: javassist.expr.FieldAccess java.lang.String javassist.bytecode.ConstPool int int javassist.compiler.Javac javassist.bytecode.CodeAttribute javassist.CtClass[] javassist.CtClass javassist.CtClass int
StackMap stack:
aload 6
invokevirtual javassist.bytecode.CodeAttribute.getMaxLocals:()I
istore 11
start local 11 19: aload 5
aload 2
iload 4
invokevirtual javassist.bytecode.ConstPool.getFieldrefClassName:(I)Ljava/lang/String;
aload 7
20: iconst_1
iload 11
aload 0
invokevirtual javassist.expr.FieldAccess.withinStatic:()Z
21: invokevirtual javassist.compiler.Javac.recordParams:(Ljava/lang/String;[Ljavassist/CtClass;ZIZ)I
pop
22: aload 8
aload 1
invokestatic javassist.expr.FieldAccess.checkResultValue:(Ljavassist/CtClass;Ljava/lang/String;)Z
istore 12
start local 12 23: iload 10
ifeq 25
24: iconst_1
istore 12
25: StackMap locals: int int
StackMap stack:
aload 5
aload 8
iload 12
invokevirtual javassist.compiler.Javac.recordReturnType:(Ljavassist/CtClass;Z)I
istore 13
start local 13 26: iload 10
ifeq 31
27: aload 5
new javassist.expr.FieldAccess$ProceedForRead
dup
aload 8
aload 0
getfield javassist.expr.FieldAccess.opcode:I
28: iload 4
iload 11
invokespecial javassist.expr.FieldAccess$ProceedForRead.<init>:(Ljavassist/CtClass;III)V
29: invokevirtual javassist.compiler.Javac.recordProceed:(Ljavassist/compiler/ProceedHandler;)V
30: goto 35
31: StackMap locals: int
StackMap stack:
aload 5
aload 9
invokevirtual javassist.compiler.Javac.recordType:(Ljavassist/CtClass;)V
32: aload 5
new javassist.expr.FieldAccess$ProceedForWrite
dup
aload 7
iconst_0
aaload
aload 0
getfield javassist.expr.FieldAccess.opcode:I
33: iload 4
iload 11
invokespecial javassist.expr.FieldAccess$ProceedForWrite.<init>:(Ljavassist/CtClass;III)V
34: invokevirtual javassist.compiler.Javac.recordProceed:(Ljavassist/compiler/ProceedHandler;)V
35: StackMap locals:
StackMap stack:
aload 5
invokevirtual javassist.compiler.Javac.getBytecode:()Ljavassist/bytecode/Bytecode;
astore 14
start local 14 36: aload 7
aload 0
invokevirtual javassist.expr.FieldAccess.isStatic:()Z
iload 11
aload 14
invokestatic javassist.expr.FieldAccess.storeStack:([Ljavassist/CtClass;ZILjavassist/bytecode/Bytecode;)V
37: aload 5
aload 6
iload 3
invokevirtual javassist.compiler.Javac.recordLocalVariables:(Ljavassist/bytecode/CodeAttribute;I)Z
pop
38: iload 12
ifeq 45
39: aload 8
getstatic javassist.CtClass.voidType:Ljavassist/CtClass;
if_acmpne 43
40: aload 14
iconst_1
invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
41: aload 14
iload 13
invokevirtual javassist.bytecode.Bytecode.addAstore:(I)V
42: goto 45
43: StackMap locals: javassist.bytecode.Bytecode
StackMap stack:
aload 14
aload 8
invokevirtual javassist.bytecode.Bytecode.addConstZero:(Ljavassist/CtClass;)V
44: aload 14
iload 13
aload 8
invokevirtual javassist.bytecode.Bytecode.addStore:(ILjavassist/CtClass;)I
pop
45: StackMap locals:
StackMap stack:
aload 5
aload 1
invokevirtual javassist.compiler.Javac.compileStmnt:(Ljava/lang/String;)V
46: iload 10
ifeq 48
47: aload 14
iload 13
aload 8
invokevirtual javassist.bytecode.Bytecode.addLoad:(ILjavassist/CtClass;)I
pop
48: StackMap locals:
StackMap stack:
aload 0
iload 3
aload 14
iconst_3
invokevirtual javassist.expr.FieldAccess.replace0:(ILjavassist/bytecode/Bytecode;I)V
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 49: goto 56
50: StackMap locals: javassist.expr.FieldAccess java.lang.String javassist.bytecode.ConstPool int int javassist.compiler.Javac javassist.bytecode.CodeAttribute
StackMap stack: javassist.compiler.CompileError
astore 7
start local 7 51: new javassist.CannotCompileException
dup
aload 7
invokespecial javassist.CannotCompileException.<init>:(Ljavassist/compiler/CompileError;)V
athrow
end local 7 52: StackMap locals:
StackMap stack: javassist.NotFoundException
astore 7
start local 7 53: new javassist.CannotCompileException
dup
aload 7
invokespecial javassist.CannotCompileException.<init>:(Ljavassist/NotFoundException;)V
athrow
end local 7 54: StackMap locals:
StackMap stack: javassist.bytecode.BadBytecode
pop
55: new javassist.CannotCompileException
dup
ldc "broken method"
invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 57 0 this Ljavassist/expr/FieldAccess;
0 57 1 statement Ljava/lang/String;
2 57 2 constPool Ljavassist/bytecode/ConstPool;
3 57 3 pos I
4 57 4 index I
5 57 5 jc Ljavassist/compiler/Javac;
6 57 6 ca Ljavassist/bytecode/CodeAttribute;
13 15 7 params [Ljavassist/CtClass;
16 49 7 params [Ljavassist/CtClass;
14 15 8 retType Ljavassist/CtClass;
18 49 8 retType Ljavassist/CtClass;
10 49 9 fieldType Ljavassist/CtClass;
11 49 10 read Z
19 49 11 paramVar I
23 49 12 included Z
26 49 13 retVar I
36 49 14 bytecode Ljavassist/bytecode/Bytecode;
51 52 7 e Ljavassist/compiler/CompileError;
53 54 7 e Ljavassist/NotFoundException;
Exception table:
from to target type
6 49 50 Class javassist.compiler.CompileError
6 49 52 Class javassist.NotFoundException
6 49 54 Class javassist.bytecode.BadBytecode
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
statement
}
SourceFile: "FieldAccess.java"
NestMembers:
javassist.expr.FieldAccess$ProceedForRead javassist.expr.FieldAccess$ProceedForWrite
InnerClasses:
ProceedForRead = javassist.expr.FieldAccess$ProceedForRead of javassist.expr.FieldAccess
ProceedForWrite = javassist.expr.FieldAccess$ProceedForWrite of javassist.expr.FieldAccess