class javassist.CtNewWrappedMethod
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: javassist.CtNewWrappedMethod
super_class: java.lang.Object
{
private static final java.lang.String addedWrappedMethod;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "_added_m$"
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavassist/CtNewWrappedMethod;
public static javassist.CtMethod wrapped(javassist.CtClass, java.lang.String, javassist.CtClass[], javassist.CtClass[], javassist.CtMethod, javassist.CtMethod$ConstParameter, javassist.CtClass);
descriptor: (Ljavassist/CtClass;Ljava/lang/String;[Ljavassist/CtClass;[Ljavassist/CtClass;Ljavassist/CtMethod;Ljavassist/CtMethod$ConstParameter;Ljavassist/CtClass;)Ljavassist/CtMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=10, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: new javassist.CtMethod
dup
aload 0
aload 1
aload 2
1: aload 6
2: invokespecial javassist.CtMethod.<init>:(Ljavassist/CtClass;Ljava/lang/String;[Ljavassist/CtClass;Ljavassist/CtClass;)V
astore 7
start local 7 3: aload 7
aload 4
invokevirtual javassist.CtMethod.getModifiers:()I
invokevirtual javassist.CtMethod.setModifiers:(I)V
4: aload 7
aload 3
invokevirtual javassist.CtMethod.setExceptionTypes:([Ljavassist/CtClass;)V
5: goto 8
6: StackMap locals: javassist.CtClass java.lang.String javassist.CtClass[] javassist.CtClass[] javassist.CtMethod javassist.CtMethod$ConstParameter javassist.CtClass javassist.CtMethod
StackMap stack: javassist.NotFoundException
astore 8
start local 8 7: new javassist.CannotCompileException
dup
aload 8
invokespecial javassist.CannotCompileException.<init>:(Ljavassist/NotFoundException;)V
athrow
end local 8 8: StackMap locals:
StackMap stack:
aload 6
aload 6
invokevirtual javassist.CtClass.getClassFile2:()Ljavassist/bytecode/ClassFile;
aload 4
9: aload 2
aload 0
aload 5
10: invokestatic javassist.CtNewWrappedMethod.makeBody:(Ljavassist/CtClass;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;[Ljavassist/CtClass;Ljavassist/CtClass;Ljavassist/CtMethod$ConstParameter;)Ljavassist/bytecode/Bytecode;
astore 8
start local 8 11: aload 7
invokevirtual javassist.CtMethod.getMethodInfo2:()Ljavassist/bytecode/MethodInfo;
astore 9
start local 9 12: aload 9
aload 8
invokevirtual javassist.bytecode.Bytecode.toCodeAttribute:()Ljavassist/bytecode/CodeAttribute;
invokevirtual javassist.bytecode.MethodInfo.setCodeAttribute:(Ljavassist/bytecode/CodeAttribute;)V
13: aload 7
areturn
end local 9 end local 8 end local 7 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 14 0 returnType Ljavassist/CtClass;
0 14 1 mname Ljava/lang/String;
0 14 2 parameterTypes [Ljavassist/CtClass;
0 14 3 exceptionTypes [Ljavassist/CtClass;
0 14 4 body Ljavassist/CtMethod;
0 14 5 constParam Ljavassist/CtMethod$ConstParameter;
0 14 6 declaring Ljavassist/CtClass;
3 14 7 mt Ljavassist/CtMethod;
7 8 8 e Ljavassist/NotFoundException;
11 14 8 code Ljavassist/bytecode/Bytecode;
12 14 9 minfo Ljavassist/bytecode/MethodInfo;
Exception table:
from to target type
4 5 6 Class javassist.NotFoundException
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
returnType
mname
parameterTypes
exceptionTypes
body
constParam
declaring
static javassist.bytecode.Bytecode makeBody(javassist.CtClass, javassist.bytecode.ClassFile, javassist.CtMethod, javassist.CtClass[], javassist.CtClass, javassist.CtMethod$ConstParameter);
descriptor: (Ljavassist/CtClass;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;[Ljavassist/CtClass;Ljavassist/CtClass;Ljavassist/CtMethod$ConstParameter;)Ljavassist/bytecode/Bytecode;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 2
invokevirtual javassist.CtMethod.getModifiers:()I
invokestatic javassist.Modifier.isStatic:(I)Z
istore 6
start local 6 1: new javassist.bytecode.Bytecode
dup
aload 1
invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
iconst_0
iconst_0
invokespecial javassist.bytecode.Bytecode.<init>:(Ljavassist/bytecode/ConstPool;II)V
astore 7
start local 7 2: aload 0
aload 1
aload 2
iload 6
3: aload 3
aload 4
aload 5
aload 7
4: invokestatic javassist.CtNewWrappedMethod.makeBody0:(Ljavassist/CtClass;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;Z[Ljavassist/CtClass;Ljavassist/CtClass;Ljavassist/CtMethod$ConstParameter;Ljavassist/bytecode/Bytecode;)I
istore 8
start local 8 5: aload 7
iload 8
invokevirtual javassist.bytecode.Bytecode.setMaxStack:(I)V
6: aload 7
iload 6
aload 3
iconst_0
invokevirtual javassist.bytecode.Bytecode.setMaxLocals:(Z[Ljavassist/CtClass;I)V
7: aload 7
areturn
end local 8 end local 7 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 8 0 clazz Ljavassist/CtClass;
0 8 1 classfile Ljavassist/bytecode/ClassFile;
0 8 2 wrappedBody Ljavassist/CtMethod;
0 8 3 parameters [Ljavassist/CtClass;
0 8 4 returnType Ljavassist/CtClass;
0 8 5 cparam Ljavassist/CtMethod$ConstParameter;
1 8 6 isStatic Z
2 8 7 code Ljavassist/bytecode/Bytecode;
5 8 8 stacksize I
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
clazz
classfile
wrappedBody
parameters
returnType
cparam
protected static int makeBody0(javassist.CtClass, javassist.bytecode.ClassFile, javassist.CtMethod, boolean, javassist.CtClass[], javassist.CtClass, javassist.CtMethod$ConstParameter, javassist.bytecode.Bytecode);
descriptor: (Ljavassist/CtClass;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;Z[Ljavassist/CtClass;Ljavassist/CtClass;Ljavassist/CtMethod$ConstParameter;Ljavassist/bytecode/Bytecode;)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=13, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
instanceof javassist.CtClassType
ifne 4
1: new javassist.CannotCompileException
dup
new java.lang.StringBuilder
dup
ldc "bad declaring class"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 0
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 3
ifne 6
5: aload 7
iconst_0
invokevirtual javassist.bytecode.Bytecode.addAload:(I)V
6: StackMap locals:
StackMap stack:
aload 7
aload 4
7: iload 3
ifeq 8
iconst_0
goto 9
StackMap locals: javassist.CtClass javassist.bytecode.ClassFile javassist.CtMethod int javassist.CtClass[] javassist.CtClass javassist.CtMethod$ConstParameter javassist.bytecode.Bytecode
StackMap stack: javassist.bytecode.Bytecode javassist.CtClass[]
8: iconst_1
9: StackMap locals: javassist.CtClass javassist.bytecode.ClassFile javassist.CtMethod int javassist.CtClass[] javassist.CtClass javassist.CtMethod$ConstParameter javassist.bytecode.Bytecode
StackMap stack: javassist.bytecode.Bytecode javassist.CtClass[] int
invokestatic javassist.CtNewWrappedMethod.compileParameterList:(Ljavassist/bytecode/Bytecode;[Ljavassist/CtClass;I)I
istore 8
start local 8 10: aload 6
ifnonnull 14
11: iconst_0
istore 9
start local 9 12: invokestatic javassist.CtMethod$ConstParameter.defaultDescriptor:()Ljava/lang/String;
astore 10
start local 10 13: goto 16
end local 10 end local 9 14: StackMap locals: int
StackMap stack:
aload 6
aload 7
invokevirtual javassist.CtMethod$ConstParameter.compile:(Ljavassist/bytecode/Bytecode;)I
istore 9
start local 9 15: aload 6
invokevirtual javassist.CtMethod$ConstParameter.descriptor:()Ljava/lang/String;
astore 10
start local 10 16: StackMap locals: int java.lang.String
StackMap stack:
aload 2
aload 10
invokestatic javassist.CtNewWrappedMethod.checkSignature:(Ljavassist/CtMethod;Ljava/lang/String;)V
17: aload 0
checkcast javassist.CtClassType
aload 1
18: aload 2
19: invokestatic javassist.CtNewWrappedMethod.addBodyMethod:(Ljavassist/CtClassType;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;)Ljava/lang/String;
astore 11
start local 11 20: goto 23
end local 11 21: StackMap locals:
StackMap stack: javassist.bytecode.BadBytecode
astore 12
start local 12 22: new javassist.CannotCompileException
dup
aload 12
invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 12 start local 11 23: StackMap locals: java.lang.String
StackMap stack:
iload 3
ifeq 25
24: aload 7
getstatic javassist.bytecode.Bytecode.THIS:Ljavassist/CtClass;
aload 11
aload 10
invokevirtual javassist.bytecode.Bytecode.addInvokestatic:(Ljavassist/CtClass;Ljava/lang/String;Ljava/lang/String;)V
goto 26
25: StackMap locals:
StackMap stack:
aload 7
getstatic javassist.bytecode.Bytecode.THIS:Ljavassist/CtClass;
aload 11
aload 10
invokevirtual javassist.bytecode.Bytecode.addInvokespecial:(Ljavassist/CtClass;Ljava/lang/String;Ljava/lang/String;)V
26: StackMap locals:
StackMap stack:
aload 7
aload 5
invokestatic javassist.CtNewWrappedMethod.compileReturn:(Ljavassist/bytecode/Bytecode;Ljavassist/CtClass;)V
27: iload 8
iload 9
iconst_2
iadd
if_icmpge 29
28: iload 9
iconst_2
iadd
istore 8
29: StackMap locals:
StackMap stack:
iload 8
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 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 30 0 clazz Ljavassist/CtClass;
0 30 1 classfile Ljavassist/bytecode/ClassFile;
0 30 2 wrappedBody Ljavassist/CtMethod;
0 30 3 isStatic Z
0 30 4 parameters [Ljavassist/CtClass;
0 30 5 returnType Ljavassist/CtClass;
0 30 6 cparam Ljavassist/CtMethod$ConstParameter;
0 30 7 code Ljavassist/bytecode/Bytecode;
10 30 8 stacksize I
12 14 9 stacksize2 I
15 30 9 stacksize2 I
13 14 10 desc Ljava/lang/String;
16 30 10 desc Ljava/lang/String;
20 21 11 bodyname Ljava/lang/String;
23 30 11 bodyname Ljava/lang/String;
22 23 12 e Ljavassist/bytecode/BadBytecode;
Exception table:
from to target type
17 20 21 Class javassist.bytecode.BadBytecode
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
clazz
classfile
wrappedBody
isStatic
parameters
returnType
cparam
code
private static void checkSignature(javassist.CtMethod, java.lang.String);
descriptor: (Ljavassist/CtMethod;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual javassist.CtMethod.getMethodInfo2:()Ljavassist/bytecode/MethodInfo;
invokevirtual javassist.bytecode.MethodInfo.getDescriptor:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
1: new javassist.CannotCompileException
dup
2: new java.lang.StringBuilder
dup
ldc "wrapped method with a bad signature: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: aload 0
invokevirtual javassist.CtMethod.getDeclaringClass:()Ljavassist/CtClass;
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
invokevirtual javassist.CtMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial javassist.CannotCompileException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 wrappedBody Ljavassist/CtMethod;
0 8 1 descriptor Ljava/lang/String;
Exceptions:
throws javassist.CannotCompileException
MethodParameters:
Name Flags
wrappedBody
descriptor
private static java.lang.String addBodyMethod(javassist.CtClassType, javassist.bytecode.ClassFile, javassist.CtMethod);
descriptor: (Ljavassist/CtClassType;Ljavassist/bytecode/ClassFile;Ljavassist/CtMethod;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual javassist.CtClassType.getHiddenMethods:()Ljava/util/Map;
astore 3
start local 3 1: aload 3
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 2: aload 4
ifnonnull 19
3: StackMap locals: java.util.Map java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc "_added_m$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual javassist.CtClassType.getUniqueNumber:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
4: aload 1
aload 4
invokevirtual javassist.bytecode.ClassFile.getMethod:(Ljava/lang/String;)Ljavassist/bytecode/MethodInfo;
ifnonnull 3
5: new javassist.ClassMap
dup
invokespecial javassist.ClassMap.<init>:()V
astore 5
start local 5 6: aload 5
aload 2
invokevirtual javassist.CtMethod.getDeclaringClass:()Ljavassist/CtClass;
invokevirtual javassist.CtClass.getName:()Ljava/lang/String;
aload 0
invokevirtual javassist.CtClassType.getName:()Ljava/lang/String;
invokevirtual javassist.ClassMap.put:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
pop
7: new javassist.bytecode.MethodInfo
dup
aload 1
invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
8: aload 4
aload 2
invokevirtual javassist.CtMethod.getMethodInfo2:()Ljavassist/bytecode/MethodInfo;
9: aload 5
10: invokespecial javassist.bytecode.MethodInfo.<init>:(Ljavassist/bytecode/ConstPool;Ljava/lang/String;Ljavassist/bytecode/MethodInfo;Ljava/util/Map;)V
astore 6
start local 6 11: aload 6
invokevirtual javassist.bytecode.MethodInfo.getAccessFlags:()I
istore 7
start local 7 12: aload 6
iload 7
invokestatic javassist.bytecode.AccessFlag.setPrivate:(I)I
invokevirtual javassist.bytecode.MethodInfo.setAccessFlags:(I)V
13: aload 6
new javassist.bytecode.SyntheticAttribute
dup
aload 1
invokevirtual javassist.bytecode.ClassFile.getConstPool:()Ljavassist/bytecode/ConstPool;
invokespecial javassist.bytecode.SyntheticAttribute.<init>:(Ljavassist/bytecode/ConstPool;)V
invokevirtual javassist.bytecode.MethodInfo.addAttribute:(Ljavassist/bytecode/AttributeInfo;)V
14: aload 1
aload 6
invokevirtual javassist.bytecode.ClassFile.addMethod:(Ljavassist/bytecode/MethodInfo;)V
15: aload 3
aload 2
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: aload 0
invokevirtual javassist.CtClassType.hasMemberCache:()Ljavassist/CtMember$Cache;
astore 8
start local 8 17: aload 8
ifnull 19
18: aload 8
new javassist.CtMethod
dup
aload 6
aload 0
invokespecial javassist.CtMethod.<init>:(Ljavassist/bytecode/MethodInfo;Ljavassist/CtClass;)V
invokevirtual javassist.CtMember$Cache.addMethod:(Ljavassist/CtMember;)V
end local 8 end local 7 end local 6 end local 5 19: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 clazz Ljavassist/CtClassType;
0 20 1 classfile Ljavassist/bytecode/ClassFile;
0 20 2 src Ljavassist/CtMethod;
1 20 3 bodies Ljava/util/Map<Ljavassist/CtMethod;Ljava/lang/String;>;
2 20 4 bodyname Ljava/lang/String;
6 19 5 map Ljavassist/ClassMap;
11 19 6 body Ljavassist/bytecode/MethodInfo;
12 19 7 acc I
17 19 8 cache Ljavassist/CtMember$Cache;
Exceptions:
throws javassist.bytecode.BadBytecode, javassist.CannotCompileException
MethodParameters:
Name Flags
clazz
classfile
src
static int compileParameterList(javassist.bytecode.Bytecode, javassist.CtClass[], int);
descriptor: (Ljavassist/bytecode/Bytecode;[Ljavassist/CtClass;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokestatic javassist.compiler.JvstCodeGen.compileParameterList:(Ljavassist/bytecode/Bytecode;[Ljavassist/CtClass;I)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 code Ljavassist/bytecode/Bytecode;
0 1 1 params [Ljavassist/CtClass;
0 1 2 regno I
MethodParameters:
Name Flags
code
params
regno
private static void compileReturn(javassist.bytecode.Bytecode, javassist.CtClass);
descriptor: (Ljavassist/bytecode/Bytecode;Ljavassist/CtClass;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual javassist.CtClass.isPrimitive:()Z
ifeq 10
1: aload 1
checkcast javassist.CtPrimitiveType
astore 2
start local 2 2: aload 2
getstatic javassist.CtClass.voidType:Ljavassist/CtClass;
if_acmpeq 8
3: aload 2
invokevirtual javassist.CtPrimitiveType.getWrapperName:()Ljava/lang/String;
astore 3
start local 3 4: aload 0
aload 3
invokevirtual javassist.bytecode.Bytecode.addCheckcast:(Ljava/lang/String;)V
5: aload 0
aload 3
aload 2
invokevirtual javassist.CtPrimitiveType.getGetMethodName:()Ljava/lang/String;
6: aload 2
invokevirtual javassist.CtPrimitiveType.getGetMethodDescriptor:()Ljava/lang/String;
7: invokevirtual javassist.bytecode.Bytecode.addInvokevirtual:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
end local 3 8: StackMap locals: javassist.CtPrimitiveType
StackMap stack:
aload 0
aload 2
invokevirtual javassist.CtPrimitiveType.getReturnOp:()I
invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
end local 2 9: goto 12
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual javassist.bytecode.Bytecode.addCheckcast:(Ljavassist/CtClass;)V
11: aload 0
sipush 176
invokevirtual javassist.bytecode.Bytecode.addOpcode:(I)V
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 code Ljavassist/bytecode/Bytecode;
0 13 1 type Ljavassist/CtClass;
2 9 2 pt Ljavassist/CtPrimitiveType;
4 8 3 wrapper Ljava/lang/String;
MethodParameters:
Name Flags
code
type
}
SourceFile: "CtNewWrappedMethod.java"
InnerClasses:
Cache = javassist.CtMember$Cache of javassist.CtMember
public ConstParameter = javassist.CtMethod$ConstParameter of javassist.CtMethod